这是输入图像5.png
:
这是我的代码:
clear all; close all; clc;
%Input Image
A = imread('C:\Users\efu\Desktop\5.png');
% figure, imshow(A);
C=medfilt2(A,[3 5]);
% figure,imshow(C);
D=imfill(C);
% figure,imshow(D);
%Image obtained using MATLAB function 'edge'
E=edge(D,'canny',[0.01 .02],3);
figure, imshow(E); title('Image obtained using MATLAB function');
image=E;
img=im2bw(image);
% imshow(img)
se = strel('line',3,0);
zz = imerode(img,se);
figure, imshow(zz);
精明边缘检测后的输出:
腐蚀后:
这里的问题是,在侵蚀所有水平边缘后都被破坏了,但我不希望这样。除了要删除所有垂直线和对角线之外,我还想提取所有水平线而不会中断。
请有人修改代码。