全文预览

matlab图像的锐化处理及边缘检测

上传者:业精于勤 |  格式:doc  |  页数:31 |  大小:3068KB

文档介绍
)?{ //根据双向一次微分公式计算当前像素的灰度值?temp=(int)sqrt((p_data[wide*j+i]-p_data[wide*j+(i-1)])*(p_data[wide*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]));?if(temp>=30) { if((temp+100)>255)p_temp[wide*j+i]=255; else p_temp[wide*j+i]=temp+100; } if(temp<30) p_temp[wide*j+i]=p_data[wide*j+i]; } //将缓冲区中的图像复制回原图数据区 memcpy(p_data,p_temp,wide*height); //删除缓冲区 deletep_temp; }4.处理效果图(a)原图(b)辅以门限判断效果图图6-5辅以门限判断效果图6.3.3给边缘规定一个特定的灰度级1理论基础G[f(i,j)]={[f(i,j)-f(i-1,j)]2+[f(i,j)-f(i,j-1)]2}1/2La;G[f(i,j)]≥Tg(i,j)= f(i,j);其它(6-13) La为一指定的灰度值。这种处理实际上是门限锐化的一种特殊形式,它将边界的灰度值统一化,这样可以使边界更加清晰明显。该方法基本上不破坏图像的背景,又可找到边缘,并根据需要增强边缘。2实现步骤(1)获得原图像的首地址,及图像的高和宽。(2)开辟一块内存缓冲区,并初始化为255。(3)计算图像的像素的梯度,将结果保存在内存缓冲区。(4)比较像素的梯度是否大于30,是则将灰度值置为255,否则恢复该像素原来的灰度值。(5)将内存中的数据复制到图像数据区。3.编程代码

收藏

分享

举报
下载此文档