基于颜色的图像检索的理论方法和c源代码内容摘要:

pProc*)new(CBmpProc)。 // 用 new分配类目标 pDestBmpLoadFromObject(bmp, amp。 CRect(0,0,128,128))。 // 从 bmp中的指定区域读入图像 disp++。 space+=128。 pDCRectangle(10+space1,1901,138+space+1,318+1)。 pDestBmpDraw(*pDC, amp。 CRect(10+space,190,138+space,318))。 // 将 pBmp中的图像绘入 DC的指定区域 space+=6。 } delete (CBmpProc*)pBmp。 // 删除类目标, delete会自动调用类的析构函数。 AfxMessageBox(检索完成 )。 } b) 基于颜色对的方法的程序实现 该方法也需要分成 44子块,计算颜色直方图,具体计算颜色直方图的方法上面已经有过详细的解释。 该方法主要在于对颜色对表示结构的实现,颜色对是某一图片的代表特征,因 此在程序中必须有定量表示,现在采取用两个子块颜色直方图的欧氏距离表示,因此计算某一子块的颜色对表就是按八方向计算其与周围的子块之间的欧氏距离,将结果存放于一个 double o_dis[8]的数组中,然后将这个数组从大到小排序,排序完成后再将数组中相互之间值的差小于某一域值(取 8个颜色对的平均值的 2%)的颜色对祛除(按序两两比较再移动数组里的变量实现),最后将结果先填入图像的特征颜色对表(有 48=32个变量,是一个结构数组,结构记录用户选定子块的坐标和与其相对应的被选中的颜色对值)。 最后,对 4个用户 选定的子块依次计算完毕,就可以调用 SortColorPair()函数,对特征颜色对表做出处理(先从大到小排序,然后祛除差值小于总平均值的 2%的特征颜色对)。 在比较的时候,按顺序计算出目标图像的子块颜色对表,和以上的特征颜色对表匹配,如果匹配到,则标记该颜色对(设定另一标记 0数组),并且将匹配数变量加一,如果最后匹配到的数目是 60%以上,就算目标图像被搜索到。 具体程序实现如下: //计算子块 (x,y)的颜色对表,采取 八方向邻接技术 int CBmpProc::CalculateColorPair(int x, int y) { double o_dis[8]。 for(int k=0。 k8。 k++){ o_dis[k]=0。 } (x,y)与周围所有子块的颜色直方图的欧氏距离 for(int i=0。 i256。 i++){ if((x1)=0amp。 amp。 (y1)=0) o_dis[0]=o_dis[0]+(Color[x1][y1][i]Color[x][y][i])*(Color[x1][y1][i]Color[x][y][i])。 else o_dis[0]=1。 if((y1)=0) o_dis[1]=o_dis[1]+(Color[x][y1][i]Color[x][y][i])*(Color[x][y1][i]Color[x][y][i])。 else o_dis[1]=1。 if((x+1)=3amp。 amp。 (y1)=0) o_dis[2]=o_dis[2]+(Color[x+1][y1][i]Color[x][y][i])*(Color[x+1][y1][i]Color[x][y][i])。 else o_dis[2]=1。 if((x1)=0) o_dis[3]=o_dis[3]+(Color[x1][y][i]Color[x][y][i])*(Color[x1][y][i]Color[x][y][i])。 else o_dis[3]=1。 if((x+1)=3) o_dis[4]=o_dis[4]+(Color[x+1][y][i]Color[x][y][i])*(Color[x+1][y][i]Color[x][y][i])。 else o_dis[4]=1。 if((x1)=0amp。 amp。 (y+1)=3) o_dis[5]=o_dis[5]+(Color[x1][y+1][i]Color[x][y][i])*(Color[x1][y+1][i]Color[x][y][i])。 else o_dis[5]=1。 if((y+1)=3) o_dis[6]=o_dis[6]+(Color[x][y+1][i]Color[x][y][i])*(Color[x][y+1][i]Color[x][y][i])。 else o_dis[6]=1。 if((x+1)=3amp。 amp。 (y+1)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。