2012-10-10 11 views
5

ブドウと3つの円(赤、緑、青)でのみ画像を取得したい。 [すべての汚れを取り除く必要があります] そのためにコードを改善するにはどうすればよいですか?バイナリ画像からノイズを除去する

これは私のコードです:

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)です。 enter image description here

、これは私のコードの結果である: enter image description here

答えて

11

あなたはIMCLOSEを使用してmorpholical閉鎖を行うことができます。 BによるAの

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

closing代替溶液を用いてメディアンフィルタであるB.

Result

+0

それは動作します!ありがとうございました! トピックを別の問題で更新しています:/ありがとう! –

+1

@ AlonShmiel私はそれがうまくいきました:D – Yamaneko

+0

私は成功した、決して心配..ありがとう! –

7

によって得られた構造の侵食に続くBによるAの膨張によって得られますしきい値が適用された直後に適切なウィンドウサイズ、:

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

enter image description here

+0

ありがとうございます!どのオプションが私のために必要かをチェックします。どうもありがとうございました!! :]] –

関連する問題