消除图像边缘的噪点

时间:2018-11-29 01:35:06

标签: matlab image-processing

我目前正在尝试学习MATLAB图像处理,对此我是一个新手。我正在尝试创建一个程序,该程序将在输入图像中分割白细胞的细胞核。我需要去除红细胞,并且大多数已被去除,但是去除噪声后仍然存在。我的问题是,每当我使用regionprops()获得区域时,在对WBC进行分段时都会包括位于边界处的噪波。如何消除噪音?我尝试更改将添加到数组中的区域的范围,但是我不想更改它,因为它会影响我拥有的其他图像。

这是输入图像:

enter image description here

下面是代码(很抱歉,它有点混乱):

im=imread('3.bmp');
figure, imshow(im), title('Original');

minval = [0 140 90];
maxval = [255 255 255];

%equivalent of inRange in OpenCV
out = true(size(im,1), size(im,2));
for p = 1 : 3
    out = out & (im(:,:,p) >= minval(p) & im(:,:,p) <= maxval(p));
end

se = strel('disk', 2);
erode = imerode(out,se);
se2 = strel('line', 1, 50);
erode2 = imerode(erode,se2);
erode2 = ~erode2;
erode2 = bwlabel(erode2);
g = regionprops(erode2, 'Area');
area_values = [g.Area];
idx = find((area_values>=1000)&(area_values<=5500));
h = ismember(erode2, idx);
se3 = strel('disk', 1);
erode3 = imopen(h, se3); 
perim = bwperim(erode3);
figure, imshow(h), title('h');
figure, imshow(perim), title('perim');

0 个答案:

没有答案