/*************************************************************************************
用语判断是否是相同的块
*************************************************************************************/BOOL CDlgMosaics::IsSameRect(CDib *bmp1, CDib *bmp2)
{
unsigned int x1,y1,x2,y2;
unsigned int w1=bmp1->m_lpBMIH->biWidth-bmp1->Pix_X;
unsigned int w2=bmp2->m_lpBMIH->biWidth-bmp2->Pix_X;
unsigned int w=(w1>w2)?w2:w1;
x1=bmp1->Pix_X;y1=bmp1->Pix_Y;
x2=bmp2->Pix_X;y2=bmp2->Pix_Y;
for(unsigned int i=0;i<w;i++)
{
//判断是否是相同的列,如果是则向左移动继续比较是否是相同的块
if(!IsSameCol(bmp1,bmp2,x1,y1,x2,y2))
return FALSE;
x1++;
x2++;
} unsigned int h=(bmp1->m_lpBMIH->biHeight-bmp1->Pix_Y)<(bmp2->m_lpBMIH->biHeight-bmp2->Pix_Y)?
(bmp1->m_lpBMIH->biHeight-bmp1->Pix_Y):(bmp2->m_lpBMIH->biHeight-bmp2->Pix_Y);
//如果块的面积比先前的最大面积大,则取代之
if(i*h>MAXarea)
{
MAXarea=i*h; left_starX=bmp1->Pix_X;
left_starY=bmp1->Pix_Y;
left_endX=i+bmp1->Pix_X;
left_endY=h+bmp1->Pix_Y;
right_starX=bmp2->Pix_X;
right_starY=bmp2->Pix_Y;
right_endX=i+bmp2->Pix_X;
right_endY=h+bmp2->Pix_Y;
}
return TRUE;
}能解释一下么~~这种算法叫什么啊~~
用语判断是否是相同的块
*************************************************************************************/BOOL CDlgMosaics::IsSameRect(CDib *bmp1, CDib *bmp2)
{
unsigned int x1,y1,x2,y2;
unsigned int w1=bmp1->m_lpBMIH->biWidth-bmp1->Pix_X;
unsigned int w2=bmp2->m_lpBMIH->biWidth-bmp2->Pix_X;
unsigned int w=(w1>w2)?w2:w1;
x1=bmp1->Pix_X;y1=bmp1->Pix_Y;
x2=bmp2->Pix_X;y2=bmp2->Pix_Y;
for(unsigned int i=0;i<w;i++)
{
//判断是否是相同的列,如果是则向左移动继续比较是否是相同的块
if(!IsSameCol(bmp1,bmp2,x1,y1,x2,y2))
return FALSE;
x1++;
x2++;
} unsigned int h=(bmp1->m_lpBMIH->biHeight-bmp1->Pix_Y)<(bmp2->m_lpBMIH->biHeight-bmp2->Pix_Y)?
(bmp1->m_lpBMIH->biHeight-bmp1->Pix_Y):(bmp2->m_lpBMIH->biHeight-bmp2->Pix_Y);
//如果块的面积比先前的最大面积大,则取代之
if(i*h>MAXarea)
{
MAXarea=i*h; left_starX=bmp1->Pix_X;
left_starY=bmp1->Pix_Y;
left_endX=i+bmp1->Pix_X;
left_endY=h+bmp1->Pix_Y;
right_starX=bmp2->Pix_X;
right_starY=bmp2->Pix_Y;
right_endX=i+bmp2->Pix_X;
right_endY=h+bmp2->Pix_Y;
}
return TRUE;
}能解释一下么~~这种算法叫什么啊~~
解决方案 »
- 为什么这段代码画出的屏幕是黑色的?
- c++,float类型的变量的if语句
- 请问MFC怎样打开网页,用浏览器打开?谢谢
- 给activex控件增加event,报错cannot find event interface
- bmp格式的图像怎么装换成pnt格式
- 求教:我在获取IHTMLDocument2接口的时候程序为什么停在CoUninitialize();不动???
- 如何一次删除CListCtrl中的多行数据!下面的代码请改进!
- 用UDP发送接收数据包需要几个端口?
- 各位高手,如何精确打印连续发票?再加500分。在线等待,急急急!
- 给一个标准对话框的例子
- MFC里想用WTL开发的窗口类,工具条类等等
- 关于喷泉码的编译码过程的程序
取两张图片的像素,
然后取一列进行像素比较,
后面的没看懂。。
逐个像素比较