2012-10-10 10 views
5

Voglio ottenere un'immagine solo con l'uva ei tre cerchi (rosso, verde, blu). [Ho bisogno di rimuovere tutte le sbavature]. come posso migliorare il mio codice?Rimuovere il rumore da un'immagine binaria

questo è il mio codice:

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

questo è la mia immagine (img_3235.jpg). enter image description here

e questo è il risultato del mio codice: enter image description here

risposta

11

È possibile eseguire una chiusura morpholical utilizzando IMCLOSE.

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

La closing di A per B è ottenuta dalla dilatazione di A per B, seguita dalla erosione della struttura risultante da B.

Result

+0

funziona! grazie! Sto aggiornando il mio argomento con un altro problema:/grazie! –

+1

@AlonShmiel Sono contento che abbia funzionato: D – Yamaneko

+0

Ci sono riuscito, non importa .. grazie mille !!! –

7

Una soluzione alternativa è quella di filtro mediano con una dimensione finestra appropriata, appena dopo l'applicazione della soglia:

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

enter image description here

+0

grazie! Controllerò quale opzione è più essenziale per me. Grazie mille!! :]] –