实用标准文案
*函数类型:void
*功能:对图像进行双向一次微分
**************************************************************/
void WeiFenDib::ShuangXiang()
{
LPBYTE p_data; //原图数据区指针
int wide,height; //原图长、宽
p_data=this->GetData ();
wide=this->GetWidth ();
height=this->GetHeight ();
LPBYTE temp=new BYTE [wide*height]; //开辟图像一缓冲区
memset(temp,255,wide*height);
for(int j=1;j<height-1;j++)
for(int i=1;i<wide-1;i++)
//根据双向一次微分公式计算当前像素的灰度值
temp[wide*j+i]=(int)sqrt((p_data[wide*j+i]-p_data[wide*j+(i-1)])*(p_data[w
ide*j+i]
-p_data[wide*j+(i-1)])+(p_data[wide*j+i]-p_data[wide*(j-1)+i
])
*(p_data[wide*j+i]-p_data[wide*(j-1)+i]));
//将缓冲区中的图像复制回原图数据区
memcpy(p_data, temp,wide*height);
//删除缓冲区
delete temp;
}
4.处理结果
(a)
原图 (b)纵向微分运算
精彩文档