19,466
社区成员
发帖
与我相关
我的任务
分享
bool CDib::Robert()
{
long i,j;//设置循环变量
long Height,Width;//位图的高度,宽度
Height = DibHeight(); // 获得位图高度
Width = DibWidth(); // 获得宽度
unsigned char pixel[4];
double result;
BYTE* pTemp = NULL;
for(j=Height-1;j> 0;j--)
{
for(i=1;i <Width-1;i++)
{
pTemp = m_pDibBits+Width*j+i; //指向源图像的第j行,第i个像素的指针
pixel[0]=(unsigned char)*pTemp ;
pixel[1]=(unsigned char)*(pTemp + 1);
pixel[2]=(unsigned char)*(pTemp-Width);
pixel[3]=(unsigned char)*(pTemp-Width+1);
result = sqrt((pixel[0]-pixel[3])*(pixel[0]-pixel[3])+
(pixel[1]-pixel[2])*(pixel[1]-pixel[2]));
*pTemp = (unsigned char)result;
}
}
return true;
}