В настоящее время я пытаюсь изучить MATLAB Image Processing, и я очень новичок в этом.Я пытаюсь создать программу, которая будет сегментировать ядро белых кровяных клеток на входном изображении.Мне нужно удалить эритроциты, и большинство из них удалены, но после удаления шума все еще остаются.Моя проблема в том, что всякий раз, когда я получаю область с помощью regionprops (), шум, расположенный на границах, включается при сегментировании WBC.Как я могу удалить шум?Я попытался изменить диапазон области, которая будет добавлена в массив, но я не хочу ее менять, поскольку она влияет на другие мои изображения.
Вот входное изображение:
![enter image description here](https://i.stack.imgur.com/TdVRM.png)
Вот код (извините, если он немного грязный):
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');