matlab - 对象分割
matlab - object segmentaion
如何使用蒙版操作和形态学滤波器对对象进行分割,如图c所示:
其中 a 是给定的图像,b 是背景(不知道为什么会这样),c 是我们的目标:
我认为将图像二值化会有所帮助,但结果是这样的:
否则,我凭直觉不明白这怎么可能
我想到了“使用形态学分水岭进行分割”,但我不确定这是否是正确的方法
实际上有了背景会让这一切变得容易得多:
A = im2double(rgb2gray(imread('a.png'))); % image
B = im2double(rgb2gray(imread('b.png'))); % background
D = abs(A-B)>0.12; % difference > threshold
D = imerode(D, strel('rectangle', [2 2])); % reducing spots
C = A;
C(D)=1;
subplot 121, imshow(D)
subplot 122, imshow(C)
如何使用蒙版操作和形态学滤波器对对象进行分割,如图c所示: 其中 a 是给定的图像,b 是背景(不知道为什么会这样),c 是我们的目标:
我认为将图像二值化会有所帮助,但结果是这样的:
否则,我凭直觉不明白这怎么可能
我想到了“使用形态学分水岭进行分割”,但我不确定这是否是正确的方法
实际上有了背景会让这一切变得容易得多:
A = im2double(rgb2gray(imread('a.png'))); % image
B = im2double(rgb2gray(imread('b.png'))); % background
D = abs(A-B)>0.12; % difference > threshold
D = imerode(D, strel('rectangle', [2 2])); % reducing spots
C = A;
C(D)=1;
subplot 121, imshow(D)
subplot 122, imshow(C)