Linie zeichnen (OpenCV)

7

Ich benutze OpenCV, um eine Linie aus einer Menge von Punkten mit cvFitLine()

anzupassen

cvFitLine() gibt einen normalisierten Vektor zurück, der zu der Linie und einem Punkt auf der Linie kolinear ist. Siehe Details hier

Wie kann ich mit dieser Information die Gleichung einer Linie erhalten, so dass ich die Linie zeichnen kann?

    
Sunny 01.05.2010, 17:23
quelle

4 Antworten

7

Wenn cvFitLine() den normalisierten Vektor (vx,vy) und den Punkt (x0,y0) zurückgibt, ist die Gleichung der Zeile

(x, y) = (x0, y0) + t * (vx, vy)

wobei t von -∞ bis + ∞ läuft.

Das ist das, wonach Sie gefragt haben, aber es ist wahrscheinlich nicht sofort hilfreich beim Zeichnen der Linie. Sie möchten es entweder an die Bildschirmgrenzen oder vielleicht an die Begrenzungsbox des ursprünglichen Satzes von Punkten anhängen. Um eine Linie zu einem Rechteck zu schneiden, lösen Sie einfach nach Werten von t , wobei die Linie die Grenze des Rechtecks ​​kreuzt.

    
brainjam 02.05.2010, 15:07
quelle
9

Zeichnen Sie einfach eine große Linie, anstatt nach den Grenzen zu suchen. zB:

%Vor%

wird es zum Beispiel tun .. für m groß genug:)

    
karpathy 04.05.2010 05:01
quelle
4

Ich habe eine ähnliche Strategie wie Karpathy benutzt, aber eine zusätzliche Funktion benutzt. Wie Sie sehen können, verwende ich cvClipLine, um die Linie auf die Größe des Bildes zu trimmen, was unnötig ist, aber ein wenig nette Details hinzufügt.

Auch der Multiplikator ist hier definiert als theMult = max (img- & gt; height, img- & gt; width), so dass wir keine Zahlen bekommen, die eines Tages überlaufen könnten oder so etwas.

%Vor%     
Denis 23.03.2012 22:53
quelle
0

Wir verwenden eine "Vec4f fitedLine"; für angepasste Linie In fitLine haben wir 4 Parameter wenn wir die Linienbeziehung az unten betrachten: Y - Y0 = M (X - X0)

wir haben     Y0 = FitedLine [3];     X0 = FitedLine [2];     m = FitedLine [1] / FitedLine [0];

damit wir eine Liniengleichung haben, können wir andere Punkte darauf finden.

    
ABSSH 24.02.2014 16:25
quelle

Tags und Links