基于直方图特征的图像搜索
图像搜索现实的一般过程:
提取图像特征值→对特征值进行处理→匹配特征值
图像的特征值有很多,基于颜色特征,纹理特征,形状特征等,下面是基于图像颜色直方图特征的图像搜索。
(参考文章:http://blog.csdn.net/jia20003/article/details/7771651#comments )
巴氏系数(Bhattacharyyacoefficient)算法
其中P, P’分别代表源与候选的图像直方图数据,对每个相同i的数据点乘积开平方以后相加
得出的结果即为图像相似度值(巴氏系数因子值),范围为0到1之间。为什么是到1之间,这是数学的问题,就不追究了。
步骤一、 求源图像和要被搜索图像的直方图特征
二、 根据直方图特征,用巴氏系数算法求出源图像和要搜索图像的相似度
彩色图像的每个像素由red,green,blue三种组成,如何好地表示彩色图像的直方图更呢?一般有两种方式:
一种是用三维的直方图表示,这种方式简单明了,如hist[][],hist[0][]表示red的直方图,hist[1][]表示green的直方图,hist[2][]表示blue的直方图;如一个像素为(156,72,89),则hist[0][156]++; hist[0][72]++, hist[0][89]++;
另一种方式是降低灰度的级数,用一维直方图表示,如将256级的灰度降至16级,可用12位的int表示灰度值,前4位表示red,中间4们表示green,后面4位表示blue;一个像素为(156,72,89), r=156/16=9; g=72/16=4,b=89/16=5; index = r<<(2*4) | g<<4 | b; hist[index] ++;
源码要被搜索的图像
搜索的结果,相似度从大到小