数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)

时间:2019-05-12 01:56:51下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)》。

第一篇:数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)

数字图像处理实验五

15生医

一、实验内容

对某一灰度图像,进行如下处理:

(1)分别用Roberts、Prewitt和Sobel边缘检测算子进行边缘检测;(2)将Roberts、Prewitt和Sobel边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。一灰度图像的二值化。

二、运行环境 MATLAB R2014a

三、运行结果及分析

运行结果如图所示:可以观察出原图像、边缘检测结果和锐化后图像三者之间的关系为:原图像+边缘检测结果=锐化后图像

四、心得体会

通过MATLAB编程更加熟悉了课本上关于锐化与边缘检测的相关知识点,对二者的关系也有了具体的认识。同时,对MATLAB图像导入函数、图像边缘检测函数、锐化窗口矩阵卷积函数的调用及实现机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。

五、具体程序

size=512;Img_rgb=imread('E:lena.jpg');%读取图像

Img_gray=rgb2gray(Img_rgb);%进行RGB到灰度图像的转换(虽然原来在网上下载的lena就是黑白图像,但是这一步必须要有!否则处理结果不正确)

figure(1);subplot(2,3,1);imshow(Img_gray);title('原图像');

Img_edge=zeros(size);a={'roberts','prewitt','sobel'};for i=1:3

Img_edge=edge(Img_gray,a{i});figure(1);subplot(2,3,i+1);imshow(Img_edge);axis image;title(a(i));end

A=imread('E:lena.jpg');B=rgb2gray(A);B=double(B);Window=[-1-1-1;-1 9-1;-1-1-1];%八邻域拉普拉斯锐化算子(α取1)C=conv2(B,Window,'same');Img_sharp=uint8(C);subplot(2,3,5);imshow(Img_sharp);title('sharp');

第二篇:数字图像处理_平均滤波与中值滤波(含MATLAB代码)[小编推荐]

数字图像处理实验二

15生医

一、实验内容

产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3x3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。

二、运行环境 MATLAB R2014a

三、运行结果及分析

1.四种不同的窗的3x3平均滤波

4邻域平均滤波后图像8邻域平均滤波后图像4邻域加权平均滤波后图像8邻域加权平均滤波后图像

①在MATLAB图形窗界面进行放大可以看出四者之间的差别: 4领域与8邻域之间没有明显差别,但是加权与未加权之间的差别较为明显,体现在:加权后每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑),而未加权的尖角处黑色变为白色。②原因分析:

加权后尖角处原来白色的点(1)进行计算3/5=0.6四舍五入后值为1,保持白色,原来黑色的点(0)进行计算2/5=0.4四舍五入后值为0,保持黑色;而未加权尖角处无论原来是黑色还是白色,进行计算2/4=0.5四舍五入后值为1,所以原先的黑色(0)也变成了白色(1)。③下图为放大后的截图:

2.中值滤波与原图像的对比 原图像中值滤波后图像

①在MATLAB图形窗界面进行放大后可观察出:

使用3x3方形中值滤波模板的效果与4领域、8领域加权平均滤波的效果相同,每个矩形块的四个尖角部分都被保留了下来(图像四周边界不考虑)。②原因分析:

套用3x3方形中值滤波模板后,尖角处原来白色的点(1)在窗内1多于0,取中值后仍保持白色,原来黑色的点(0)在窗内0多于1,取中值后仍保持白色。③下图为放大后的截图:

四、心得体会

通过MATLAB编程更加理解了课后题的计算结果,直观地看出了黑白像素点灰度值变化前后的取值异同。同时,对MATLAB实现像素点灰度值的替换机理也有所掌握,比如后边附的程序中会提到的“%”标注的思考。

五、具体程序

% 生成黑白块图像

unit=zeros(64,64);f=zeros(256,256);for i=1:1:32 for j=1:1:32 unit(i,j)=1;% 1/4白块 end end for i=33:1:64 for j=33:1:64 unit(i,j)=1;% 1/4白块 end end for i=1:64:256 for j=1:64:256 f(i:i+63,j:j+63)=unit;end end

% 对原图像进行3x3平均滤波 for i=2:1:255 for j=2:1:255 fave4(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1))/4;

fave8(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1))/8;

fave4_weighted(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1)+f(i,j))/5;

fave8_weighted(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)+f(i,j))/9;end end fave4=round(fave4);%平均后灰度值有可能是小数,要取整 fave8=round(fave8);fave4_weighted =round(fave4_weighted);fave8_weighted =round(fave8_weighted);subplot(2,2,1);imshow(fave4);title('4邻域平均滤波后图像');subplot(2,2,2);imshow(fave8);title('8邻域平均滤波后图像')subplot(2,2,3);imshow(fave4_weighted);title('4邻域加权平均滤波后图像')subplot(2,2,4);imshow(fave8_weighted);title('8邻域加权平均滤波后图像')

4邻域平均滤波后图像8邻域平均滤波后图像4邻域加权平均滤波后图像8邻域加权平均滤波后图像

% 对原图像进行3x3方形中值滤波 for i=2:1:255 for j=2:1:255

a=[f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,j+1)];b=sort(a);% 排序函数

fmid(i,j)=b(5);% 9个数排序的中值 end end subplot(1,2,1);imshow(f);title('原图像');subplot(1,2,2);imshow(fmid);title('中值滤波后图像')

原图像中值滤波后图像

下载数字图像处理_边缘检测算子与锐化算子(含MATLAB代码)word格式文档
下载数字图像处理_边缘检测算子与锐化算子(含MATLAB代码).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐