数字图像处理(DIP)作业8 matlab or OpenCV 对lena 图片进行边缘提取
数字图像处理课程相关文章 传送门
https://blog.csdn.net/qq_46164507/article/details/122503851
博文说明
本文所使用代码或多或少参考了以往博文的同类or相似文章的代码,并非纯原创
本文仅用于记录并提供一种代码思路,供大家参考
正文
要求
代码
这里选用matlab
,matlab
代码如下:
%使用sobel,roberts,prewitt,log,canny进行边缘处理
clc,clear,close all;
I = imread('lena.jpg');
for i=[1,2,3]
bw1(:,:,i)=edge(I(:,:,i),'sobel'); %Sobel operators
bw2(:,:,i) = edge(I(:,:,i),'roberts'); %roberts operators
bw3(:,:,i) = edge(I(:,:,i),'prewitt'); %Prewitt operators
bw4(:,:,i) = edge(I(:,:,i),'log'); %LOG operators
bw5(:,:,i) = edge(I(:,:,i),'canny');
end
for i=1:512
for j=1:512
bw1(i,j,1) = sum(bw1(i,j));
bw2(i,j,1) = sum(bw2(i,j));
bw3(i,j,1) = sum(bw3(i,j));
bw4(i,j,1) = sum(bw4(i,j));
bw5(i,j,1) = sum(bw5(i,j));
end
end
subplot(2,3,1),imshow(I), title('Original Image')
subplot(2,3,2),imshow(bw1(:,:,1)), title('Sobel')
subplot(2,3,3),imshow(bw2(:,:,1)), title('roberts')
subplot(2,3,4),imshow(bw3(:,:,1)), title('Prewitt')
subplot(2,3,5),imshow(bw4(:,:,1)), title('LOG')
subplot(2,3,6),imshow(bw5(:,:,1)), title('canny')