基于C#的图像数据库中图像缩略图索引实现方法

2013-08-06 03:29闫超李雪
黑龙江八一农垦大学学报 2013年2期
关键词:缩略图插值法原图

闫超,李雪

(黑龙江八一农垦大学信息技术学院,大庆 163319)

对于图像数据库的用户来说,文字索引不够直观,用户更喜欢的是图像索引[1],因为图像作为索引更加的直观,用户能够清晰的根据需求选择选项。然而用高清晰的原始图像作为索引会拖慢图像数据库管理系统的运行速度,为了解决这个问题,运用图像缩放算法对原始图像进行缩放,得到图像缩略图,从而获取更快的反应速度,并采用预生成索引的方式建立数据库,使得数据库的访问速度进一步提高。

1 缩略图建立方法对比

1.1 最近邻插值

将缩放后的图像坐标通过反向变换得到的一个浮点坐标,对其进行简单的四舍五入的取整,得到一个整数型坐标,这个整数型坐标在原图像对应的像素值就是缩放后目标像素的像素值。最邻近插值[2]简单且直观,建立速度快,虽然产生了锯齿,得到的图像质量不高,但对于应用已经足够。

设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZX,竖直缩放系数为ZY,则用下面公式(1)计算使用最临近插值法缩放后的像素值:

1.2 双线性插值

将缩放后的图像坐标通过反向变换得到的一个浮点坐标,将浮点坐标在原图像位置周围的4 个像素根据某种权值进行加权运算得到的像素值就是缩放后目的像素的像素值。双线性插值缩放后图像质量高,极大地消除了锯齿现象,不会出现像素值不连续的情况,但由于具有低通滤波器的性质,使高频分量受损,所以可能会使图像轮廓在一定程度上变得模糊。

设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZX,竖直缩放系数为ZY,则使用下面公式(3)计算使用双线性插值法缩放后的像素值:

则有

1.3 三次卷积法

三次卷积法[3]能够克服以上两种算法的不足,是双线性插值算法的改进算法,它输出图像的每个像素都是原图16 个像素运算的结果。计算精度很高但计算量也很大。

设原图像为f(x,y),缩放后的图像为g(u,v),水平缩放系数为ZX,竖直缩放系数为ZY,则使用下面公式(5)计算使用三次卷积法缩放后的像素值:令

x′=[u/ZX],y′=[v/ZY]

则有

式(5)中:[A]=[S(m+1) S(m+0) S(m-1) S(m-2)]

1.4 算法比较

通过以上三种算法的解析,得到如表1 算法对照表。经过分析,采用双线性插值法作为缩放图像的算法。因为双线性插值法的缩放质量高,作为索引缩略图,对图像轮廓的要求不高,并且双线性插值的计算量不大,这样在生成索引缩略图时消耗的时间不会太长,综合考虑,选择了双线性插值为缩放算法。

表1 算法对照表Table 1 Algorithm table

2 图像数据库读取对比研究

在图像数据库管理系统中,在保证使用高清晰原始图像索引(如图1)和图像缩略图索引(如图2)显示效果相同的前提下。为了对比在读取数据库时,读取高清晰原始图像和图像缩略图对图像数据库管理系统运行耗费时间的影响,进行了读取索引图像时间对比测试,测试结果如表2 所示。

测试环境:32 位WIN7 旗舰版。

处理器:E4600 双核处理器 内存2G。

表2 索引图像读取时间Table 2 The time of index image reading

图1 高清晰原始图像索引Fig.1 High-definition original image index

图2 图像缩略图索引Fig.2 Image thumbnails index

由表2 的数据可以计算出以下结果:当图像数据库中的图片数为10 张时,读取原图时间是读取缩略图时间的4 661/445=10.47 倍;当图像数据库中的图片数为20 张时,读取原图时间是读取缩略图时间的8 995/522=17.23 倍;当图像数据库中的图片数为30 张时,读取原图时间是读取缩略图时间的18 012/972=18.53 倍;当图像数据库中的图片数为40 张时,读取原图已经显示内存不足,而读取缩略图的时间仅仅为1 420 ms。

可见使用图像缩略图做索引比使用高清晰原始图像做索引对读取数据库数据效果要更好,而且形象直观。

3 预生成缩略图和实时生成缩略图对比

预生成缩略图就是在向数据库中存储高清晰原始图像的时候,直接生成缩略图;而实时生成缩略图则是指在调用图像数据库管理系统的时候动态的生成缩略图。预生成缩略图和实时生成缩略图的对比如表3。

表3 预生成缩略图和实时生成缩略图的对比Table 3 The contrast of preliminary generated thumbnail and real-time generated thumbnail

由图2 可知预生成缩略图和实时生成缩略图的优缺点,在图像数据库管理系统中选择的生成方法是预生成缩略图。因为现在的计算机硬盘空间比较大,一张108*81 像素的图像的大小大约在26 K,40张缩略图耗费的空间大约为40*26 K=1 040 K,但是如果采取实时生成缩略图的方式,对于性能不是很强的计算机如测试计算机(处理器:E4600 双核处理器 内存2G)会出现卡死的现象,因为实时生成缩略图首先要把原图调入内存中,然后对原图进行处理再显示到程序中,这将耗费CPU,甚至卡死。而预生成缩略图仅仅是从数据库中调取缩略图的路径进行显示,对于CPU 的要求要远远小于实时生成缩略图。

4 结论

由以上内容可以看出,采用双线性插值法的预生成缩略图方式生成索引图像无疑是方便、快捷且有效的方法,给图像数据库管理系统的应用打下了坚实的基础,为后期的系统完善提供了有力的保障。

[1]唐俊华,阎保平.基于LSH 索引的快速图像检索[J].计算机工程与应用,2002,24(21):20-22.

[2]王艳莉.插值算法应用在图像缩放中的研究[J].烟台教育学院学报,2005,11(1):31-33.

[3]李秀英,袁红.几种图像缩放算法的研究[J].现代电子技术,2012,35(5):48-51.

猜你喜欢
缩略图插值法原图
多种方法开启PDF缩略图预览
更进一步用好图片缩略图文件
开启Office文档缩略图预览
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
完形:打乱的拼图
用好Windows 10文件缩略图
大家来找茬
顾及局部特性的自适应3D矢量场反距离权重插值法
Newton插值法在光伏发电最大功率跟踪中的应用