我想只用葡萄和三个圆圈(红色,绿色,蓝色)拍摄图像。 [我需要删除所有涂片]。 我怎样才能改进我的代码?
这是我的代码:
RGB = imread('img_3235.jpg');
GRAY = rgb2gray(RGB);
threshold = graythresh(GRAY);
originalImage = im2bw(GRAY, threshold);
originalImage = bwareaopen(originalImage,250);
imshow(originalImage);
CC = bwconncomp(originalImage); %Ibw is my binary image
stats = regionprops(CC,'pixellist');
这是我的形象(img_3235.jpg)。
这是我的代码的结果:
答案 0 :(得分:11)
您可以使用IMCLOSE
执行形态学结束。
se = strel('disk', 10); %# structuring element
closeBW = imclose(originalImage,se);
figure, imshow(closeBW);
A by B的closing是通过A对B的膨胀得到的,然后是B对所得结构的侵蚀。
答案 1 :(得分:7)
另一种解决方案是在应用阈值后立即使用适当的窗口大小过滤中值:
...
originalImage = im2bw(GRAY, threshold);
originalImage = medfilt2(originalImage,[37 37],'symmetric');
originalImage = bwareaopen(originalImage,250);
figure, imshow(originalImage);