2

代替テキスト

こんにちは、私は示されているようにセグメント化された画像を持っています。波打っていないように線を滑らかにする方法はありますか?ありがとう。

4

2 に答える 2

4

次のコードには、ImageProcessingToolboxが必要です。

url = 'http://i182.photobucket.com/albums/x11/veronicafmy/FYP/picture5segmentedimage.jpg';
rgb = imread(url);
bw = im2bw(rgb2gray(rgb), 0.5);
se = strel('line',50,74); % 74 degrees determined by inspection
bw2 = imclose(bw,se);
se2 = strel('line',50,74+90);
bw3 = imclose(bw2,se2);

結果は次のとおりです。

平滑化された結果

オプションのステップ:間伐による後処理:

bw4 = bwmorph(bw3,'thin',inf);
于 2009-12-18T19:04:03.650 に答える
0

なぜスムーズにしなければならないのかを自問する必要があると思います。画像をセグメント化してその結果を得た場合、平滑化によって正しい結果が得られると確信していますか? もしそうなら、Steve Eddinsの答えはうまくいくようです。

一方、セグメント化しようとしているオブジェクトが結果よりもはるかに滑らかである場合は、2 つのアプローチのいずれかをお勧めします。

  1. 対象物が十字(2本の線)の場合は、おそらく線分を計算して2本の線分に表現を変えます。これらは、任意の精度と滑らかさでレンダリングできます。これを行うには、何らかの特徴検出アルゴリズムを使用して中心と回転を見つけるか、ハフ変換を使用して線を見つけることができます。後者はおそらくはるかに単純です。

  2. ターゲットが任意の形式を持つことができる場合は、より良いセグメンテーション アルゴリズムを検討します。ハードしきい値に基づかないセグメンテーション アルゴリズムがあります。これにはグラフ分割アルゴリズムを使用しましたが、遅いながらもうまく機能します。

于 2009-12-18T19:18:44.913 に答える