首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

-关于怎么判断是否是相同像素的点

2012-03-19 
求助-关于如何判断是否是相同像素的点来源为一图像拼接程序,里面有一段代码是用来实现 判断是否是相同像素

求助-关于如何判断是否是相同像素的点
来源为一图像拼接程序,里面有一段代码是用来实现 判断是否是相同像素的点 我看了好久还是无法理解 if(abs(p[i]-q[i])>50) 是如何完成判断的
源代码是这样的:
/********************************************************************************
用于判断是否是相同象素的点
BOOL CDlgMosaics::IsSamePix(CDib *bmp1, CDib *bmp2, int x1, int y1, int x2, int y2)
{

//LPBYTE m_lpImage DIB位图数据块地址
BYTE *p,*q;
p=bmp1->m_lpImage+GetPixOffset(x1,y1,bmp1);
q=bmp2->m_lpImage+GetPixOffset(x2,y2,bmp2); 
for(int i=0;i<bmp1->m_lpBMIH->biBitCount/8;i++)
  if(abs(p[i]-q[i])>50)  
return FALSE; 
else 
return TRUE;
}

望各位高人解答,感激不尽

[解决办法]
p=bmp1->m_lpImage+GetPixOffset(x1,y1,bmp1);
之后不就取得了bmp1 在x1,y1点 像素对应内存地址首
同样的 ,q 取得了bmp2 在x2,y2点 像素对应内存地址首

bmp1->m_lpBMIH->biBitCount 是图像的位数
比方说 它=24 就说明这个图像每个像素占用 24位 ,也就是3字节

那么p[i] (i=0,1,2)就是该像素每个字节的值

abs(p[i]-q[i])>50 是在比较、50就是所谓的阀值

大于50认为不是

热点排行