1.一种基于图像检索的图像归类方法,其特征是:首先进行初始图像库的维护,初始图像库内存有一些基本的图像,事先对这些图像进行了特征提取、并标注了标签,当图像库内有新图像加入时,首先对新图像进行特征提取,并将新加入的图像与库中原有的图像进行特征检索,锁定在特定阈值内的图像,将锁定的这些图像的标签添加到新图像上,作为新图像的标签,完成归类分组,具体实现方法所包含的技术问题为:1.1灰度化图像灰度化是指将彩色图像处理为256级的灰度图像。灰度化处理的公式为:Gray=x*R+y*G+z*B式中Gray是当前像素点的灰度值,x,y,z是系数,R、G、B分别表示当前像素点的红色、绿色、蓝色通道值。其一般形式为:Gray=0.299*R+0.587*G+0.114*B在实际处理中,为了方便可以处理为:x=y=z=1/3则表达式转换为:Gray=(R+G+B)/31.2缩小尺寸缩小尺寸是为了更好地从图像内提取特征信息,也为了能够使得图像检索能够抵抗诸如缩放的改变。图像在进行缩小时,可以将原始图像划分为互不相交的子块(小区域),然后计算该子块内像素的平均值,将该平均值作为缩小后图像中对应像素点的像素值。例如,原始图像大小为M*N,缩小后图像大小要求为m*n,则需要将图像划分为(M*N)/(m*n)大小的互不相交的小块,计算每一个小块的平均值,将该值作为缩小图像对应位置的像素值。以一个16*16像素大小的图像为例,其具体的值为:
6518756198926911620723619315440443425
77828188125117205711871872091520224456192
168213140189918310523938235185235203201161230
2316720420792141832301072091415710334160148
2517320720389234666013119068201029319614
1367239491361235414313255117207197252401
16559202024618691631631901231042910359196
1711329214712818118721702247110722918916170
217411702306439452302412910310514019173213
191147199147246811423827113193947524017557
127315811824123620343237526213524691156128
217228151118146243224102372251391161052092496
313821818201052291631001438823638133201240
862291805619849212183610361423924442241
7014734112274321618116917013712693623461
49127115211219251240236575918622741193222198
如果想将其缩小为4*4大小的图像,则将其划分为(16/4)*(16/4)大小互不相交的子块,具体为:
![]()
针对每一个子块,计算其平均值,作为缩小后图像的平均值,例如左上角的子块,其中的值为:
![]()
计算其平均值为:aver=(65+187+56+98+77+8+28+188+168+213+140+189+231+67+204+20)/16=127因此,将该像素值127作为缩小后图像的左上角像素值。对原始图像内的各个子块重复上述计算,即可以得到缩小后的图像,其具体值为:
127139139130
125119130119
151151119134
108151121136
1.3简化色彩简化色彩是为了允许在待检索图像和目标图像之间存在一定的色彩差异,能够更好地提高系统的鲁棒性。简化色彩后,当待检索图像与图像库中的图像在颜色上的存在一定的色彩差异时,系统能够自动忽略在一定范围内的色彩差异,将在一定色彩差异范围内的图像划分为同一组,使其具有相同(相近)的特征值。根据实际需要,简化色彩时,可以将色彩颜色减少为8种、16种、64种等不同的级别。经过灰度化,当前色彩是256级,即每一个像素的值可能是0~255。经过简化色彩后,图像的灰度级可以固定在一个更小的范围内。例如,将图像简化为N级,则新图像的值可以通过:
![]()
得到,式中PiNew是简化色彩后的像素点新值,PiO是像素点初始值,N是要简化得到的N级。例如原来是256级,要简化为8级,则当某个像素点的像素值为123时,将其进行简化的计算方法为:New=(123/255)*8=4因此,简化后,得到当前像素点新的像素值为4。例如,有图像O,其像素为:
1734106790200
1374791175629
2301112713811870
2135154138638
243180110134166135
961881472442425
将图像O按照上述方法进行简化色彩,得到8级灰度,则得到的图像OR为:
503206
413121
704442
722031
863454
365880
1.4计算特征矩阵该过程相对简单,当得到缩小后的图像后,将所有像素点的像素值相加求和,将该和除以像素点的总个数,则得到该图像的像素平均值(图像内所有像素的平均值)。具体实现为:
![]()
式中,Pi每个像素点的像素值,N是图像所包含的像素点的个数,m*n是缩小后特征图像的大小。此处,N=m*n。将图像内每一个像素点的像素值与图像的像素平均值value进行比较,得到当前点的特征值,判定的根据如下:
![]()
式中,result是计算结果,Pi当前像素点的像素,value是前述计算得到的平均值。例如:简化色彩后的图像为:
503206
413121
704442
722031
863454
365880
计算当前图像的平均值,得到其平均值为3.5,则获取其特征值矩阵为:
100001
100000
101110
100000
110111
011110
1.5获取哈希值将特征值图像中的特征值按照一定的顺序连接成一个数组,即得到一个二值数组。该数组即为当前图像的特征值数组。可以将该数组理解为一个哈希值,该值在一定意义上代表了当前图像。例如,得到的图像特征值矩阵为
![]()
将该特征矩阵按照从左到右,从上到下的顺序连接,可以得到二值数组为:[1 0 0 0 1 0 0 0 1]该数组即为图像的哈希值。1.6计算距离求两个数字之间的欧氏距离。欧氏距离计算公式为:
![]()
式中,dis是距离,a和b分别是两个特征数组构成的哈希值。例如,哈希值A为[1 0 1 1],哈希值B为[1 0 0 1],则他们之间的欧式距离为:dis=((1‑1)2+(0‑0)2+(1‑0)2+(1‑1)2)1/2=1即将他们对应位置的值进行运算以得到哈希值A与哈希值B二者之间的距离。例如,有图像A,其哈希值为:[1 1 0 1 1 1 0 0 1 1 1]图像库中有图像X、Y、Z,其中X的哈希值为:[1 1 0 0 0 0 0 0 1 1 1]Y的哈希值为:[0 0 1 1 1 0 1 0 1 0 0]Z的哈希值为:[0 0 1 1 0 0 1 1 0 1 0]则按照上述方式,分别计算图像A与图像X、Y、Z之间的距离得到:
![]()
从上述结果可以判定,图像A与图像X的距离更近,与图像Y次之,与图像Z距离最远。1.7添加标签将得到的距离进行从小到大的排序。将排序中前N个图像的标签作为新图像的标签添加到新图像。数字N可以根据需要进行调节。当数字N过小时,新加入图像的标签数可能较少,可能导致无法完全描述新图像;当数字N过大时,可能会有过多的标签添加到新图像上,会将一些特征不明显的标签添加到新图像上。该值在具体的使用过程中,能够根据操作中的实际需要进行调节。