图像锐化算法实现知识讲解.docx
- 文档编号:19167400
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:12
- 大小:1.20MB
图像锐化算法实现知识讲解.docx
《图像锐化算法实现知识讲解.docx》由会员分享,可在线阅读,更多相关《图像锐化算法实现知识讲解.docx(12页珍藏版)》请在冰豆网上搜索。
图像锐化算法实现知识讲解
图像锐化算法实现
南京信息工程大学实验(实习)报告
实验(实习)名称图像锐化算法实现实验(实习)日期*****得分指导教师***
学院****专业****年级*班次*姓名***学号***********
一、实验目的:
1.了解图像锐化的目的和意义,巩固所学的图像锐化的理论知识和相关算法;
2.掌握微分算子对图像锐化的方法;
3.熟练掌握空域中常用的锐化滤波器;
4.利用MATLAB程序进行图像锐化(要求:
不得调用Matlab自带的图像函数,但可以调用其它数学函数),观察图像锐化的效果。
二、实验内容:
1.读入一幅灰度图像
2.分别利用Roberts、Prewitt和Sobel边缘检测算子,对一幅灰度数字图像(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);
fori=1:
x-1%注意i的范围是1到x-1而不是到x
forj=1:
y-1
a=J(i+1,j+1)-J(i,j);
b=J(i+1,j)-J(i,j+1);
J1(i,j)=abs(a)+abs(b);%直接以梯度值代替
%辅以门槛判断
ifabs(a)+abs(b)>150
J2(i,j)=J1(i,j);
else
J2(i,j)=I(i,j);
end
%给边缘规定一个特定的灰度级
ifabs(a)+abs(b)>150
J3(i,j)=255;
else
J3(i,j)=I(i,j);
end
%给背景规定特定的灰度级
ifabs(a)+abs(b)>150
J4(i,j)=J1(i,j);
else
J4(i,j)=0;
end
%二值图像
ifabs(a)+abs(b)>100
J5(i,j)=255;
else
J5(i,j)=0;
end
end
end
J1=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);title('roberts算子5');
2.prewitt算子
clear;
clc;
I=imread('cameraman.tif');
[m,n]=size(I);
J=double(I);
forx=2:
m-1
fory=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);
ifabs(a)+abs(b)>160
J2(x,y)=J1(x,y);
else
J2(x,y)=I(x,y);
end
ifabs(a)+abs(b)>160
J3(x,y)=255;
else
J3(x,y)=I(x,y);
end
ifabs(a)+abs(b)>160
J4(x,y)=J1(x,y);
else
J4(x,y)=0;
end
ifabs(a)+abs(b)>160
J5(x,y)=255;
else
J5(x,y)=0;
end
end
end
J1=uint8(J1);
J2=uint8(J2);
subplot(2,3,1);imshow(I);title('原图');
subplot(2,3,2);imshow(J1);title('prewitt算子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);
forx=2:
m-1
fory=2:
n-1
a=J(x+1,y-1)-J(x-1,y-1)+2*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);
ifabs(a)+abs(b)>160
J2(x,y)=J1(x,y);
else
J2(x,y)=I(x,y);
end
ifabs(a)+abs(b)>160
J3(x,y)=255;
else
J3(x,y)=I(x,y);
end
ifabs(a)+abs(b)>160
J4(x,y)=J1(x,y);
else
J4(x,y)=0;
end
ifabs(a)+abs(b)>160
J5(x,y)=255;
else
J5(x,y)=0;
end
end
end
J1=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');
subplot(2,3,5);imshow(J4);title('sobel算子4');
subplot(2,3,6);imshow(J5);title('sobel算子5');
图像空域变化背景
图像经转换或传输,质量可能下降,难免有些模糊
图像锐化目的:
加强图像轮廓,使图像看起来比较清晰
平滑与锐化
1、高频分量对应图像中的区域边缘或噪声;
2、低频分量对应图像中灰度值缓慢变化的区域;
3、平滑减弱或消除图像中的高频分量,平滑图像,消除噪声;
4、锐化减弱或消除图像中的低频分量,增加图像的反差,突出边缘。
梯度算子
1.算子:
算子是一个函数空间到函数空间上的映射O:
X→X。
广义上的算子可以推广到任何空间,如内积空间等。
2.对于图像f(x,y),在(x,y)处的梯度定义为
3.梯度:
梯度对应一阶导数,相应的梯度算子就对应一阶导数算子
4.梯度是一个矢量,其幅度和方向分别为
离散图像的梯度
1.一阶偏导数采用一阶差分近似表示,如,常规梯度算子
2.对于离散图像处理而言,常用到梯度的大小,因此把梯度的大小习惯称为“梯度”
为简化梯度的计算,经常使用
几种常见的梯度算子
Roberts算子:
Prewitt算子
Sobel算子
Sobel算子并不是各向同性的算子,它分为:
∙水平边缘检测Sobel算子gx
∙垂直边缘检测Sobel算子gy
gxgx之所以近似表示水平梯度,是因为它直接求的是3*3窗口内模版中心像素点附近的像素点水平差分之和,中间元素差分乘以了权重系数2表示和模版中心关联度更高。
gygy可以类似理解。
运用模版卷积运算,可以快速求出水平梯度:
Gx=gx⋅F3×3
Sobel算子考虑权重,因此抗噪能力优于无权重的Prewitt算子(见后)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 锐化 算法 实现 知识 讲解