【学习笔记】边缘检测的几种方式

i=imread('C:\Users\24734\Pictures\multisim和ad截图\二值形态学4.jpg');
i=rgb2gray(i);
im=dither(i);
bw2=edge(im, 'sobel');
bw3=edge(im, 'log');
subplot(122);imshow(bw2);title('sobel');
subplot(121);imshow(bw3);title('log');

方法一 利用 edge函数
运用 sobel/reboerts/prewitt/log/canny等算子进行边缘检测。
canny算子连续性最强。
(原理目前不赘述,等哪天要用了再补充)

i=imread('C:\Users\24734\Pictures\multisim和ad截图\二值形态学4.jpg');
i=rgb2gray(i);
im=dither(i);
bw2=bwperim(im);
bw3=bwperim(im,8);
subplot(122);imshow(bw2);title('bw2');
subplot(121);imshow(bw3);title('bw3');

方法二 现成的函数bwperim(name,coon)
coon为连通值,默认为4,也可以为八。

close all;clear all;clc;
i=imread('C:\Users\24734\Pictures\multisim和ad截图\二值形态学4.jpg');
i=rgb2gray(i);
im=dither(i);
se = strel('square',2);
J = imdilate(im,se);
K = imerode(im,se);
L = J-K;
subplot(122);imshow(im);title('im');
subplot(121);imshow(L);title('L');

方法三 利用膨胀和腐蚀,用腐蚀的减去膨胀的。

`
效果如下:
【学习笔记】边缘检测的几种方式_第1张图片

你可能感兴趣的:(matlab)