2010-05-21 23 views
5

Angenommen, wir haben ein Bild wie soWie messe ich Distanzen in einem Bild?

alt text http://www.curiousexpeditions.org/North%20Reading%20Room,%20UC%20Berkeley,%20California,%20USA.jpg

Lasst uns sagen, dass wir bereits Filter und einen Kantenerkennungsalgorithmus in diesem Bild verwendet haben. Jetzt ist mein Ziel, Entfernungen zu messen (NICHT tatsächliche Entfernungen, Abstand kann in irgendeiner willkürlichen Einheit sein). zB: Wie finde ich die Länge der Halle? (bis zum Fenster)

Oder die Höhe der Bücherregale? Wie genau platzieren Sie die "Waage" und messen Sie? Ich suche nach Ideen. Es würde jedoch helfen, wenn die Antworten in Bezug auf OpenCV wären.

+1

youll eine Machine-Vision-Suite benötigen wie NI MACHINE VISION ... übrigens, was Sie C# verwenden, vb, LabVIEW? – Luiscencio

Antwort

0

Es hängt davon ab, was Sie versuchen zu tun.

Sie erwähnen, dass Sie die Höhe der Bücherregale messen möchten. Wenn es Ihnen zusagt, dass der Nahbereich des Bücherregals "kürzer" ist als die Höhe des Endes des Bücherregals am Ende der Reihe, suchen Sie nur nach Entfernung. Wählen Sie eine Einheit von "Pixeln" und messen Sie dann die Entfernung mit dem Satz des Pythagoras. (x^2 + y^2 = z^2)

Was Sie wahrscheinlich wirklich suchen, ist, dass die Höhe des nahen Bücherregals der Höhe des entfernten Bücherregals entspricht. In diesem Fall müssen Sie mehr Informationen haben. Sie müssen eine 2D -> 3D Transformation durchführen: Sie haben ein 2D Bild und Sie müssen ein 3D Bild von diesem Bild rekonstruieren. An diesem Punkt benötigen Sie eine dritte Information, da Sie 3 Variablen (X, y, z) aus 2 Variablen haben wollen.

Sie können dies mit OpenCV auf jeden Fall tun, wenn Sie das System ordnungsgemäß kalibrieren und einen zweiten Referenzpunkt (z. B. eine Laserlinie) haben. Dies ist bekannt als ein strukturiertes Licht Ansatz - siehe this link für weitere Informationen oder Google "Machine Vision strukturierte Licht"

0

Da Sie davon ausgehen können, dass ein Bücherregal parallel zu dem darunter ist, dann ist der tatsächliche Abstand zwischen Bücherregalen gleich irgendein Punkt. Sie können festlegen, dass nach X Pixeln der Tiefe die wahrgenommene Höhe um Y% abnimmt. Sie sollten schnell ein klares Muster erstellen können. Alle parallelen Linien und rechten Winkel in Ihrem tatsächlichen Raum werden die Mathematik leicht machen.

Zeichnen Sie einige Anfangspunkte am Anfang und Ende jedes Bücherregals. Sie können die entsprechenden Mathe Themen finden Sie hier:
http://en.wikipedia.org/wiki/Slope
http://en.wikipedia.org/wiki/Cartesian_coordinate_system