2017-03-18 5 views
0

私は、「1」(ディスク)の穴で構成された50×50の2Dマトリックスを持ち、残りの値はゼロです。 (行列は2進である)。下の図に示すように、オブジェクトの輪郭のマトリックス内の位置を返すだけです。 "imcontour"というコマンドを試しました(私の場合もバイナリイメージです)。それは良いですが、輪郭の与えられた位置のいくつかは、マトリックスのサイズを上回っています。つまり、マトリックスのインデックスではないピクセル単位の位置を与えるかもしれません。 私も "輪郭"と "境界線"を試しましたが無駄でした。 アイデア私は右のそれを得た場合
enter image description herematlabの2D行列の輪郭の位置を返すか?

+0

'imcontour'はうまくいくはずです。あなたは間違いなくあなたのコードに誤りがあります。最小のコード例を提供してください。 – Ratbert

答えて

1

することは、あなたのマトリックス内の非ゼロ値のインデックス番号を抽出するために、(M)を見つける=位置を抽出し、INDしようとする、[X、Y] =見つける(M)をしてみてください。

+0

伯爵の内側には「1」と外側に「0」があります。図はちょうど輪郭です。 –

+0

次に境界を探しています。 bwperim関数を使うだけです。 [x、y] =見つける(bwperim(M)) – Ozcan

+0

ありがとう!それが私が探していたものです。私は "エッジ"である別のソリューションを見つけましたが、 "bwperim"が優れています。 –