2017-03-18 1 views
0

Ich habe eine 2D-Matrix 50x50 bestehend aus einem Loch von '1' (eine Scheibe) und die restlichen Werte sind Null. (Die Matrix ist binär). Ich möchte nur die Positionen in der Matrix der Kontur des Objekts, wie in der folgenden Abbildung gezeigt, zurückgeben. Ich habe den Befehl "imcontour" versucht (da mein Fall auch ein Binärbild ist). Es ist gut, aber einige der gegebenen Positionen der Kontur liegen über der Größe der Matrix, was bedeutet, dass sie möglicherweise die Position in Pixeln nicht als Index der Matrix angibt. Ich habe auch "Kontur" und "Grenze" versucht, aber vergebens. Irgendwelche Ideen?
enter image description hereZurückgeben der Positionen einer Kontur in einer 2D-Matrix in Matlab?

+0

'imcontour' sollte funktionieren, Sie haben sicherlich einen Fehler in Ihrem Code. Bitte geben Sie ein minimales Code-Beispiel an. – Ratbert

Antwort

1

Wenn ich bekam Recht es, versuchen [x, y] = find (M) Positionen zu extrahieren und versuchen, ind = find (M) Indexzahlen von Nicht-Nullen-Werte in Ihrer Matrix zu extrahieren.

+0

Innerhalb des Kreises gibt es '1' und außerhalb '0'. Die Figur ist nur die Kontur. –

+0

Dann suchen Sie nach der Grenze. Verwenden Sie einfach die bwperim-Funktion. [x, y] = finden (bwperim (M)) – Ozcan

+0

Vielen Dank! das ist wonach ich gesucht habe. Ich fand eine andere Lösung, die "Kante" ist, aber "bwperim" ist besser. –

Verwandte Themen