2

下の図に示すように、オブジェクトを含むバイナリ イメージがあります。オブジェクトのcenterlineは に示されていredます。オブジェクトに属するピクセルごとに、色でラベルを付け直したいと思います。たとえば、中心線までの直交距離が中心線からオブジェクト境界までの距離の半分であるピクセルはblue、そうでない場合は とラベル付けする必要がありますgreen。以下に図を示します。何か案は?また、オブジェクトとgaussianオブジェクトの中心にある 1D をどのように合わせることができますか?centerlineorthogonal

フル解像度の画像はhttp://imgur.com/AUK9Hs9にあります。

4

1 に答える 1

2

思いつくのは次のとおりです (Image Processing Toolbox がある場合)。

2 つのバイナリ イメージを作成します。1 つBWinは赤い線の位置に 1 (真) のピクセルがあり、もう 1 つBWoutは白い領域の反対です (領域の外側に 1 内側に 0 (偽))。

このような:

BWin: Bウィン

BWout: Bアウト

次に、次を使用して両方にユークリッド変換を適用しますbwdist

Din = bwdist(BWin);
Dout = bwdist(BWout);

これで、最も近い非 0 ピクセルまでのユークリッド距離を表すピクセル強度を持つ 2 つの画像ができました。

両方を減算すると、差の値は等距離の一方の側で正になり、反対側で負になります。

blueMask=Din-Dout>0;
greenMask=~BWout & blueMask;

次に、マスクを使用して RGB レイヤーを設定できます。

Result=zeros(size(II));
Result(:,:,1)=BWin;
Result(:,:,2)=greenMask;
Result(:,:,3)=~blueMask & ~BWin;
imshow(Result);

結果

于 2014-03-01T19:20:49.653 に答える