2012-10-10 19 views
5

Chcę uzyskać obraz tylko z winogron i trzech okręgów (czerwony, zielony, niebieski). [Muszę usunąć wszystkie smugi]. jak mogę poprawić mój kod?Usuwanie szumów z obrazu binarnego

to mój kod:

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'); 

to jest mój obraz (img_3235.jpg). enter image description here

i jest to wynik mojego kodu: enter image description here

Odpowiedz

11

Można wykonać morfologicznych zamykanie za pomocą IMCLOSE.

se = strel('disk', 10); %# structuring element 
closeBW = imclose(originalImage,se); 
figure, imshow(closeBW); 

closing z A przez B otrzymuje się przez rozszerzenie A, B, następuje erozja struktury otrzymanej przez B.

Result

+0

to działa! Dziękuję Ci! Aktualizuję mój temat innym problemem:/dziękuję! –

+1

@AlonShmiel Cieszę się, że zadziałało: D – Yamaneko

+0

Udało mi się, nieważne .. dziękuję bardzo !!! –

7

Alternatywnym rozwiązaniem jest średnim filtrze odpowiedni rozmiar okna, tuż po próg jest stosowana:

... 
originalImage = im2bw(GRAY, threshold); 
originalImage = medfilt2(originalImage,[37 37],'symmetric'); 
originalImage = bwareaopen(originalImage,250); 
figure, imshow(originalImage); 

enter image description here

+0

dziękuję! Sprawdzę, która opcja jest dla mnie bardziej istotna. Dziękuję Ci bardzo!! :]] –

Powiązane problemy