基于改进的颜色直方图的图像检索算法(6)

2018-11-18 21:10

for (m = 0; m <= 255; m++) {

if (Ha[1][1][m]>=1040) {

pDC->MoveTo(m+40, 300); pDC->LineTo(m+40, 40);

}else if(Ha[1][1][m]>0 && Ha[1][1][m]<1040){ pDC->MoveTo(m+40, 300);

pDC->LineTo(m+40, 300-Ha[1][1][m]/4);}

}

//显示匹配图的直方图

void CImageRetrievalDlg::OnShowIm2() {

}

}

// 恢复以前的画笔

if (Ha[1][1][m]>0) { }

strTemp.Format(\Ha[1][1][m]); pDC->TextOut( m+40, 20, strTemp);

pDC->SelectObject(pOldPen); // 删除新的画笔 delete pPenRed; delete pPenBlue;

}

CDlgHistShow dlgShow; dlgShow.DoModal();

//计算子块的颜色对表

void CImageRetrievalDlg::CalculateColorPair(int x, int y) {

//采用欧氏距离表示颜色对 for(int ka=0; ka<8; ka++) { }

for(int numb=0; numb<32; numb++) { }

//计算(x,y)与周围所有子块的颜色直方图的欧氏距离 for(int i=0; i<256; i++) {

if((x-1)>=0 && (y-1)>=0)

o_dis[0]=o_dis[0]+(Ha[x-1][y-1][i]-Ha[x][y][i])*(Ha[x-1][y-1][i]-Ha[x]pair[numb].x1=-1; pair[numb].y1=-1; pair[numb].o_dis1=-1; o_dis[ka]=0;

[y][i]);

else

o_dis[0]=-1;

if((y-1)>=0)

o_dis[1]=o_dis[1]+(Ha[x][y-1][i]-Ha[x][y][i])*(Ha[x][y-1][i]-Ha[x][y]

[i]);

else

o_dis[1]=-1;

if((x+1)<=3 && (y-1)>=0)

o_dis[2]=o_dis[2]+(Ha[x+1][y-1][i]-Ha[x][y][i])*(Ha[x+1][y-1][i]-Ha[x]

[y][i]);

else

o_dis[2]=-1;

if((x-1)>=0)

o_dis[3]=o_dis[3]+(Ha[x-1][y][i]-Ha[x][y][i])*(Ha[x-1][y][i]-Ha[x][y]

[i]);

else

o_dis[3]=-1;

if((x+1)<=3)

o_dis[4]=o_dis[4]+(Ha[x+1][y][i]-Ha[x][y][i])*(Ha[x+1][y][i]-Ha[x][y]

[i]);

else

o_dis[4]=-1;

if((x-1)>=0 && (y+1)<=3)

o_dis[5]=o_dis[5]+(Ha[x-1][y+1][i]-Ha[x][y][i])*(Ha[x-1][y+1][i]-Ha[x]

[y][i]);

else

o_dis[5]=-1;

if((y+1)<=3)

o_dis[6]=o_dis[6]+(Ha[x][y+1][i]-Ha[x][y][i])*(Ha[x][y+1][i]-Ha[x][y]

[i]);

else

o_dis[6]=-1;

if((x+1)<=3 && (y+1)<=3)

o_dis[7]=o_dis[7]+(Ha[x+1][y+1][i]-Ha[x][y][i])*(Ha[x+1][y+1][i]-Ha

[x][y][i]);

}

//取平方根

for(int j=0; j<8; j++) { }

//取得颜色已有数目 int num=0;

for(int pairnum=0; pairnum<32; pairnum++) { }

//计算域值 double ave=0;

if(pair[pairnum].x1!=-1) num++;

if(o_dis[j]>=0) o_dis[j]=sqrt(o_dis[j]);

else

o_dis[7]=-1;

for(int e=0; e<8; e++) { }

ave+=o_dis[e];

ave=ave/8; ave=ave*0.02;

//对该子块的颜色对表进行从大到小的排序(冒泡排序) int count=8; double temp; for(int i1=count; i1>0; i1--) { }

//消除那些颜色对差值小于域值的颜色对,以消除那些没有意义的小对象 for(int k1=0; k1

if(fabs(o_dis[k1]-o_dis[k1+1])

for(int l=k1+1;l

if(o_dis[j1]

temp=o_dis[j1]; o_dis[j1]=o_dis[j1+1]; o_dis[j1+1]=temp;


基于改进的颜色直方图的图像检索算法(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:标准化管理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: