1、图像锐化算法实现知识讲解图像锐化算法实现南京信息工程大学实验(实习)报告实验(实习)名称 图像锐化算法实现 实验(实习)日期 * 得分 指导教师 * 学院 * 专业 * 年级 * 班次 * 姓名 * 学号 * 一、实验目的:1了解图像锐化的目的和意义,巩固所学的图像锐化的理论知识和相关算法; 2掌握微分算子对图像锐化的方法; 3熟练掌握空域中常用的锐化滤波器;4利用MATLAB程序进行图像锐化(要求:不得调用Matlab自带的图像函数,但可以调用其它数学函数),观察图像锐化的效果。二、实验内容:1. 读入一幅灰度图像2. 分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对一
2、幅灰度数字图像(cameraman.tif)进行边缘检测,显示处理前图像和检测的边缘图3. 根据获得的梯度图,分别采用5种锐化输出处理方式,显示锐化输出前后的图像三、实验要求:1. 用Matlab语言进行编程,实现上述功能,并尽量使得程序具有通用性,3种算子3个.m文件。2. 撰写实验报告并附上所用程序和结果。 四、实验代码及实验结果1.roberts算子clear;clc;I=imread(cameraman.tif);x,y=size(I);J=double(I);for i=1:x-1%注意i的范围是1到x-1而不是到x for j=1:y-1 a=J(i+1,j+1)-J(i,j);
3、b=J(i+1,j)-J(i,j+1); J1(i,j)=abs(a)+abs(b);%直接以梯度值代替 %辅以门槛判断 if abs(a)+abs(b) 150 J2(i,j)=J1(i,j); else J2(i,j)=I(i,j); end %给边缘规定一个特定的灰度级 if abs(a)+abs(b) 150 J3(i,j)=255; else J3(i,j)=I(i,j); end %给背景规定特定的灰度级 if abs(a)+abs(b) 150 J4(i,j)=J1(i,j); else J4(i,j)=0; end %二值图像 if abs(a)+abs(b) 100 J5(i
4、,j)=255; else J5(i,j)=0; end endendJ1=uint8(J1);J2=uint8(J2);subplot(2,3,1);imshow(I);title(原图);subplot(2,3,2);imshow(J1);title(roberts算子1);subplot(2,3,3);imshow(J2);title(roberts算子2);subplot(2,3,4);imshow(J3);title(roberts算子3);subplot(2,3,5);imshow(J4);title(roberts算子4);subplot(2,3,6);imshow(J5);ti
5、tle(roberts算子5);2.prewitt算子clear;clc;I=imread(cameraman.tif);m,n=size(I);J=double(I);for x=2:m-1 for y=2:n-1 a=J(x+1,y-1)-J(x-1,y-1)+J(x+1,y)-J(x-1,y)+J(x+1,y+1)-J(x-1,y+1); b=J(x-1,y+1)-J(x-1,y-1)+J(x,y+1)-J(x,y-1)+J(x+1,y+1)-J(x+1,y-1); J1(x,y)=abs(a)+abs(b); if abs(a)+abs(b) 160 J2(x,y)=J1(x,y);
6、else J2(x,y)=I(x,y); end if abs(a)+abs(b) 160 J3(x,y)=255; else J3(x,y)=I(x,y); end if abs(a)+abs(b) 160 J4(x,y)=J1(x,y); else J4(x,y)=0; end if abs(a)+abs(b) 160 J5(x,y)=255; else J5(x,y)=0; end endendJ1=uint8(J1);J2=uint8(J2);subplot(2,3,1);imshow(I);title(原图);subplot(2,3,2);imshow(J1);title(prewi
7、tt算子1);subplot(2,3,3);imshow(J2);title(prewitt算子2);subplot(2,3,4);imshow(J3);title(prewitt算子3);subplot(2,3,5);imshow(J4);title(prewitt算子4);subplot(2,3,6);imshow(J5);title(prewitt算子5);3sobel算子 clear;clc;I=imread(cameraman.tif);m,n=size(I);J=double(I);for x=2:m-1 for y=2:n-1 a=J(x+1,y-1)-J(x-1,y-1)+2*
8、J(x+1,y)-2*J(x-1,y)+J(x+1,y+1)-J(x-1,y+1); b=J(x-1,y+1)-J(x-1,y-1)+2*J(x,y+1)-2*J(x,y-1)+J(x+1,y+1)-J(x+1,y-1); J1(x,y)=abs(a)+abs(b); if abs(a)+abs(b) 160 J2(x,y)=J1(x,y); else J2(x,y)=I(x,y); end if abs(a)+abs(b) 160 J3(x,y)=255; else J3(x,y)=I(x,y); end if abs(a)+abs(b) 160 J4(x,y)=J1(x,y); else
9、J4(x,y)=0; end if abs(a)+abs(b) 160 J5(x,y)=255; else J5(x,y)=0; end endendJ1=uint8(J1);J2=uint8(J2);J3=uint8(J3);J4=uint8(J4);J5=uint8(J5);subplot(2,3,1);imshow(I);title(原图);subplot(2,3,2);imshow(J1);title(sobel算子1);subplot(2,3,3);imshow(J2);title(sobel算子2);subplot(2,3,4);imshow(J3);title(sobel算子3)
10、;subplot(2,3,5);imshow(J4);title(sobel算子4);subplot(2,3,6);imshow(J5);title(sobel算子5);图像空域变化背景图像经转换或传输,质量可能下降,难免有些模糊 图像锐化目的:加强图像轮廓,使图像看起来比较清晰平滑与锐化1、高频分量 对应图像中的区域边缘或噪声;2、低频分量 对应图像中灰度值缓慢变化的区域 ;3、平滑 减弱或消除图像中的高频分量,平滑图像,消除噪声;4、锐化 减弱或消除图像中的低频分量,增加图像的反差,突出边缘。梯度算子1.算子:算子是一个函数空间到函数空间上的映射O:XX。广义上的算子可以推广到任何空间,如
11、内积空间等。2.对于图像f(x,y),在(x,y)处的梯度定义为3.梯度:梯度对应一阶导数,相应的梯度算子就对应一阶导数算子4.梯度是一个矢量,其幅度和方向分别为离散图像的梯度1.一阶偏导数采用一阶差分近似表示,如,常规梯度算子 2.对于离散图像处理而言,常用到梯度的大小,因此把梯度的大小习惯称为“梯度”为简化梯度的计算,经常使用几种常见的梯度算子Roberts算子:Prewitt算子Sobel算子Sobel算子并不是各向同性的算子,它分为: 水平边缘检测Sobel算子gx 垂直边缘检测Sobel算子gygxgx之所以近似表示水平梯度,是因为它直接求的是3*3窗口内模版中心像素点附近的像素点水平差分之和,中间元素差分乘以了权重系数2表示和模版中心关联度更高。gygy可以类似理解。运用模版卷积运算,可以快速求出水平梯度:Gx=gxF33Sobel算子考虑权重,因此抗噪能力优于无权重的Prewitt算子(见后)。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1