判断是否有相同的块(图像拼接)

dengjunwen010 2012-05-15 09:27:36
/*************************************************************************************
用语判断是否是相同的块
*************************************************************************************/

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;
}
能解释下这个程序么
这种算法叫什么啊
谢谢哇

...全文
56 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,506

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧