1

在叶子分割后,我得到了以下二值图像: 在此处输入图像描述 有没有办法填补由于静脉与背景相似而造成的空白?我尝试过使用 imclose 或 imdilate 等,但它会影响牙齿的形状。我不知道如何在不影响牙齿形状的情况下填补这些空白。

4

1 回答 1

1

您可以尝试bwfill(I, 'hols'),没有没有imclose

I = imbinarize(rgb2gray(imread('leaf.jpg')));
I = I(3:end-4, 1:end-8); %Remove white frame
J = imclose(I, ones(2)); %Minor affect the teeth shape (result looks better with imclose).
K = bwfill(J, 'hols'); %Fill the black hols

结果:
在此处输入图像描述


如果您想填补“静脉空白”,您可以尝试以下方法:

I = imbinarize(rgb2gray(imread('leaf.jpg')));
I = I(3:end-4, 1:end-8); %Remove white frame
I = bwfill(I, 'hols'); %Fill small black hols.
J = imerode(imdilate(I, strel('disk',5)), strel('disk',10)); %Dilate with radius 5 and erode with 10
T = (I == 0) & (J == 1); %Create mask with 1 where I is black and J is white "vein mask".
K = I;
K(T) = 1; %Fill "vein mask" in I with white.
K = bwfill(K, 'hols'); %Fill small black hols (fill tiny holds left).

结果:
在此处输入图像描述

于 2019-09-17T20:29:23.240 回答