このコードは、さらに処理するために画像内のオブジェクトの境界を単純に推定します
f = imread(ImageFile);
i = rgb2gray(f);
threshold = graythresh(i);
bw = im2bw(i, threshold);
imshow(bw)
se = strel('disk',3);
bw = imclose(bw,se);
bw = bwareaopen(bw, 30);
[B,L] = bwboundaries(bw,'noholes');
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
boundary = B{k};
plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)
end
ただし、これで試してみると、間違った結果が得られます
(さらに画像を試しましたが、これ以上リンクを投稿できません)
結果は完璧にはほど遠いものでした。ウィーナー フィルターを使用してみました。画像の左側の部分は滑らかになりましたが、右側の部分にはまだ多くのノイズがあります。メディアンフィルターはそれを悪化させます。
このようなノイズを減らすには、どのような方法が最も効果的でしょうか? また、同様の背景を持つ画像で使用しても機能するように、一般化されたソリューションを探しています。