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

2018-11-18 21:10

for(int sda=0;sda<4;sda++)

for(int tda=0;tda<256;tda++){ }

Ha[fda][sda][tda]=0;

for(int fdb=0;fdb<4;fdb++)

for(int sdb=0;sdb<4;sdb++)

for(int tdb=0;tdb<256;tdb++){ }

Sa[fdb][sdb][tdb]=0;

for(int fdc=0;fdc<4;fdc++)

for(int sdc=0;sdc<4;sdc++)

for(int tdc=0;tdc<256;tdc++){ }

Va[fdc][sdc][tdc]=0;

for( i=0;i<4;i++)

for( j=0;j<4;j++)

for(int k=0;k

for(int l=0;l

x=j*width+l; y=i*height+k;

clr=dcMem.GetPixel(x,y); R=GetRValue(clr); G=GetGValue(clr); B=GetBValue(clr); //RGB转HSV

int maxp=max(R,G); int max=max(maxp,B); int minp=min(R,G); int min=min(minp,B);

if(max!=0) {S=(max-min)/max;} else {S=0;H=-1;break;} //

饱和度

if(max==min) {break;} if (R == max)

H = (G-B)/(max-min);

else if (G == max)

H = 2 + (B-R)/(max-min); else

H = 4 + (R-G)/(max-min);

H = H * 60 ; if (H < 0)

H = H + 360 ; //色彩度

V=max; //亮度

Ha[i][j][H]++;

Sa[i][j][S]++; }

//绘臵直方图

void CImageRetrievalDlg::HistogramShow(int idc)

}

Va[i][j][V]++;

{

int m;

CWnd* pWnd = GetDlgItem(idc);// 获取绘制直方图文本框的标签 // 获取设备上下文

CDC* pDC = pWnd->GetDC(); pWnd->Invalidate(); pWnd->UpdateWindow();

pDC->Rectangle(0, 0, 367,338);

CPen* pPenRed = new CPen;// 创建画笔对象

pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0));// 创建红色画笔(用

于绘制坐标轴)

CPen* pOldPen = pDC->SelectObject(pPenRed);// 选入红色画笔,并保

存以前的画笔

pDC->MoveTo(40,40);// 绘制坐标轴 pDC->LineTo(40, 300);// 绘制垂直轴 pDC->LineTo(340, 300);// 绘制水平轴 // 绘制X轴刻度值

CString strTemp; strTemp.Format(\

pDC->TextOut(40, 303, strTemp); strTemp.Format(\

pDC->TextOut(90, 303, strTemp); strTemp.Format(\

pDC->TextOut(140, 303, strTemp); strTemp.Format(\

pDC->TextOut(190, 303, strTemp); strTemp.Format(\

pDC->TextOut(240, 303, strTemp); strTemp.Format(\

pDC->TextOut(295, 303, strTemp);

// 绘制X轴刻度

for (m = 0; m < 256; m += 5) { }

// 绘制X轴箭头 if ((m & 1) == 0) { } else { }

// 5的奇数倍数

pDC->MoveTo(m + 40, 303); pDC->LineTo(m + 40, 310); // 10的倍数

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

pDC->MoveTo(335,295); pDC->LineTo(340,300); pDC->LineTo(335,305);

// 绘制Y轴箭头

pDC->MoveTo(40,40); pDC->LineTo(35,45); pDC->MoveTo(40,40); pDC->LineTo(45,45);

LONG lMaxCount = 0;// 直方图中最大计数值

// 计算最大计数值

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

// 判断是否大于当前最大值 if (Ha[1][1][m] > lMaxCount) { }

// 更新最大值

lMaxCount = Ha[1][1][m];

pDC->TextOut(10, 150, \

CPen* pPenBlue = new CPen;// 声名画笔对象

pPenBlue->CreatePen(PS_SOLID, 1, RGB(0,0,255));// 创建蓝色画笔(用

于绘制直方图)

pDC->SelectObject(pPenBlue);// 选入蓝色画笔 // 判断是否存在计数值 if(lMaxCount > 0){

// 绘制直方图


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

下一篇:标准化管理

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

马上注册会员

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