2016-12-01 8 views
1

MATLABと画像処理の新機能です。イメージをフォアグラウンドとバックグラウンドに分割し、出力としてバイナリイメージを生成する方法を知っておく必要があります。MATLAB:セグメントイメージ

enter image description here

は、私はすでにオンラインチュートリアルでこれを実現しようとした、これは私が得ることができたものです:: enter image description here

私は出力としてこれを必要とする enter image description here

その良いです私が必要とするものではありません。

マイコード:あなたはのさまざまなバリエーションを試してみることができます

se = strel('square',2); 
I = imclose(I,se); 

:優れたノイズ除去処理と前景と背景のクリーンな分離のために

I = imread('AssignmentInput.jpg'); 
figure; 
imshow(I); 
title('Step-1: Load input image'); 


img_filtered = I; 
for c = 1 : 3 
    img_filtered(:, :, c) = medfilt2(I(:, :, c), [3, 3]); 
end 
figure; 
imshow(img_filtered); 
title('Step-3:Noise Removal'); 

H = fspecial('gaussian'); % Create the filter kernel. 
img_filtered = imfilter(img_filtered,H); % Blur the image. 
Mask = im2bw(img_filtered, 0.9); % Now we are generating the binary mask. 
img_filtered([Mask, Mask, Mask]) = 0; % Now we have the image. 
figure; 
imshow(img_filtered); 
title('Step-5:Segmented Image'); 
+0

それは私の近くにかなり犬のように見えます。 2つの画像の違いは何ですか? – beaker

+0

基本的に私は第3のイメージの色を維持し、私は第2のイメージで示すように白黒としてそれを必要とします。 –

+0

これは、元の画像にマスクを適用したためです。試してみてください 'imshow(〜マスク)' – beaker

答えて

0

は、あなたも同じような形態学的操作を追加することができます'strel'クラスも。下の画像は、2ピクセルの正方形で操作された後です。enter image description here