数字图像处理实验十一边缘检测

利用Sobel、Roberts、Prewitt、Canny、log和拉普拉斯算子进行边缘提取。

clear;
clc;
%----------------------------图像的灰度化处理-------------------------------
JPG=imread('1.jpg');
JPG=rgb2gray(JPG);
I=im2double(JPG);

%---------------------------Sobel算子边缘检测-------------------------------
%BW=edge(I,'sobel',thresh,direction)该函数采用Sobel算子对图像I进行边缘检测
%将分割阈值thresh设置为空矩阵(即表示函数自动计算分割阈值),direction可以对方向进行设置,共有三个值:horizontal,vertical,both(默认,表示水平和垂直双方向)
S=edge(I,'sobel',15/255,'both');
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(S);title('采用Sobel算子提取的边缘');

%--------------------------Roberts算子边缘检测------------------------------
%调用格式BW=edge(I,'roberts',thresh)采用Roberts算子对图像I进行边缘检测,thresh为分割阈值
%该函数会忽略所有小于thresh的像素值,注意阈值需要进行归一化即变换到[0,1]之间
R=edge(I,'roberts',10/255);
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(R);title('采用Roberts算子提取的边缘');

%--------------------------Prewitt算子边缘检测------------------------------
% BW=edge(I,'prewitt',thresh,direction)该函数采用Prewitt算子对图像I进行边缘检测
P=edge(I,'prewitt',15/255,'both');
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(P);title('采用Prewitt算子提取的边缘');

%---------------------------Canny算子边缘检测-------------------------------
%BW=edge(I,'canny')该函数采用Canny算子对图像I进行边缘检测
%并采用自动计算的低阈值和高阈值进行图像分割,函数的返回值BW为二值图像
C=edge(I,'canny');
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(C);title('采用Canny算子提取的边缘');

%----------------------------Log算子边缘检测--------------------------------
%BW=edge(I,'log',thresh,sigma)该函数采用LOG算子对图像I进行边缘检测,
%若不设置阈值tresh或tresh为空,系统会自动计算tresh值
%sigma为LOG滤波器的标准差默认位2
L=edge(I,'log');% 采用LOG算子提取边缘
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(L);title('采用LOG算子提取的边缘');

%--------------------------拉普拉斯算子边缘检测-----------------------------
laplace=[0,1,0;1,-4,1;0,1,0];
L1=imfilter(I,laplace);
L=abs(L1);
figure();
subplot(121),imshow(I);title('原始图像');
subplot(122),imshow(L);title('采用拉普拉斯算子提取的边缘');

效果图展示

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
浙江工业大学数字图像处理实验是一个在Matlab环境下进行的实验Matlab是一种高级的数学软件和编程语言,广泛应用于数字图像处理领域。该实验主要涉及数字图像的获取、处理、分析和展示等方面。 实验的第一步是图像的获取。通过Matlab提供的函数,可以从各种来源获取图像,包括文件、摄像头和传感器等。获取到的图像可以是灰度图像或彩色图像。 接下来是图像的处理。Matlab提供了丰富的图像处理函数,如滤波、增强、几何变换等。滤波可以去除图像中的噪声;增强可以调整图像的对比度和亮度;几何变换可以改变图像的大小、旋转和翻转等。 实验中还包括图像的分析。通过Matlab的图像分析工具,可以提取图像的特征,如边缘、角点和颜色分布等。这些特征可以用于图像的检测、识别和分类等任务。 最后是图像的展示。实验中,可以利用Matlab的图像显示函数,将处理过的图像以可视化的形式呈现出来。通过图像展示,可以直观地观察处理效果,对比不同算法的优劣,并进行结果的分析和评估。 通过这个实验,学生能够学习到数字图像处理的基本概念、方法和技巧,掌握Matlab图像处理中的应用。这对于他们进一步深入研究图像处理领域,或者从事相关工作具有重要意义。同时,通过实验过程中的思考和实践,学生还能培养问题解决和创新思维能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放氮气的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值