2017-02-20 8 views
1

a.jpgb.jpg のこれらの2つのイメージは、例えばcompフォルダに格納されているセグメントの画像を書きたいと思います。私は問題のセグメント化を繰り返す画像ごとに何度も何度も繰り返します。問題を解決できませんでした。 は、ここに私のコードループのためのmatlab

Resultado='C:\Users\Nurul\Desktop\picsegment'; 
srcFiles = dir('C:\Users\Nurul\Desktop\comp\*.jpg'); 
for i = 1 : length(srcFiles) 
filename = strcat('C:\Users\Nurul\Desktop\comp\',srcFiles(i).name); 
a = imread(filename); 
LLL=a; 
s=regionprops(LLL); 

figure,imshow(LLL); title('segmented Image'); 
    hold on 
for J=1:numel(s) 
rectangle('Position',s(J).BoundingBox,'edgecolor','g') 
end 
im1=LLL; 
baseFileName = sprintf('%d.jpg', i); % e.g. "1.png" 
fullFileName = fullfile(Resultado, baseFileName); 
    imwrite(im1, fullFileName); 
    end 

plzのヘルプ おかげ

+0

を追加します。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にするために、[ask]ページを参照してください。 –

+0

私は各画像を一度だけ正しく分割する必要があります。しかし、このコードは各画像を何度も分割しています。 –

+0

「何度も何度も」とはどういう意味ですか?このコードは完全ではありません。 'regionprops'には2つの入力が必要です。 –

答えて

1

あなたは、jpgとして大きなミスをしてデータを保存しているです!

データを保存する場合は、jpgとしてください。バイナリイメージとして保存されないことを覚えておいてください。つまり、再度2値化する必要があります。さもなければ、すべての小さなピクセルノイズはregionpropsによってデータとして検出されます。

ちょうどあなたの特定の問題を明確にしたり、必要な正確に何を強調表示するために、追加の詳細情報を追加してください

a = imread(filename); 

a=im2bw(a,0.5); % Add this line. The fancy way would be im2bw(a,graythresh(a)), but 0.5 will do in your case 

LLL=a; 

enter image description here

+0

ありがとうございました!フォルダ内に分割された画像が保存されないのはなぜですか?バイナリ画像のみが保存されます –

+0

@ EifaTasnim質問を変更しないでください。新しい質問がある場合は、新しい質問をしてください。また、これで問題が解決した場合は、 –

+0

申し訳ありません。最初の質問を編集します。現在の質問に答えることはできますか? –