edge函数 MATLAB,求助,为何edge函数无法正常运行?代码及图片如下

2020-10-28 科技 203阅读

代码如下:

特别提醒:最后的边缘提取(效果见第二张图),使用了一个函数boundarymask,这个函数是matlab R2016a版本新引入的函数,低版本中没有。如果你使用低版本的matlab,EDGE1这部分代码可以使用edge替代(即直接使用edge对BW1提取边缘,sobel,canny都可以),但效果可能不如boundarymask。

clc; clear; close all;
f_rgb=imread('1.jpg');
figure;
subplot(221),imshow(f_rgb),title('叶子彩色图');
f_gray=rgb2gray(f_rgb);
subplot(222),imshow(f_gray),title('叶子灰度图');
BW1 = ~im2bw(f_gray, graythresh(f_gray));
BW1 = imfill(BW1, 'holes');
subplot(223),imshow(BW1),title('分割');
EDGE1 = boundarymask(BW1);
subplot(224),imshow(EDGE1),title('叶子边缘');

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com