Identifizieren Sie alle kolinearen Liniensegmente (in Matlab)

8

Ich habe eine verwandte, aber nicht die gleiche Frage hier gestellt Ссылка

Hintergrund: Ich habe viele Bilder, die so aussehen:

Ich möchte alle Liniensegmente identifizieren, die kolinear sind und dann die Länge dieser Segmente messen. Im obigen Bild sind 3 Paare von Segmenten auf einer imaginären Linie mit einer negativen Steigung. Das Liniensegment, das am längsten ist, hat kein Paar, so dass es nicht berücksichtigt würde, d. H. Es müssen mindestens zwei Segmente vorhanden sein, die kolinear sind.

Ich bekomme Folgendes:

%Vor%

Ich musste mit den Parametern herumspielen, um eine vernünftige Leistung zu erzielen (obwohl ich keinen Parameter finden kann, der das Anfangsbit des Segments erfasst, das sich unten befindet). Ich kann jedoch nicht vermeiden, mehrere überlappende Segmente zu finden.

Kann mir bitte jemand helfen? 1. Verhindern Sie die Identifizierung überlappender Segmente. 2. Identifizieren Sie alle Linien, die kolinear sind

Vielen Dank!

    
Lee Sande 30.11.2011, 23:39
quelle

1 Antwort

6

Dieser Code findet kollineare Liniengruppen.

%Vor%

Es gibt keine Überschneidungen. Es ist nicht klar, wie ein Fall mit 3 kolinearen Segmenten behandelt werden soll, wo sich das erste Segment und das zweite Segment schneiden. Müssen Sie sowohl das Set mit dem ersten und dritten als auch das Set mit dem zweiten und dritten Segment berücksichtigen?

    
cyborg 01.12.2011 09:50
quelle