2010-05-21 221 views
5

比方說,我們有像這樣如何測量圖像中的距離?

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

比方說,我們已經使用的過濾器,並在此PIC邊緣檢測算法的圖像。現在我的目標是測量距離(不是實際距離,距離可以是任意單位)。 例如:我如何找到大廳的長度? (直到窗口)

或者書架的高度?你究竟如何放置「規模」和措施。我正在尋找想法。然而,如果答案是OpenCV,這將有所幫助。

+1

youll需要機器視覺套件,如NI機器視覺...通過你在使用C#,VB,LabVIEW中的方式嗎? – Luiscencio 2010-05-21 16:44:19

回答

0

這取決於你想要做什麼。

你提到你想測量書架的高度。如果您認爲書架的靠近區域比排在最後的書架末端的高度「短」,那麼您所要查找的就是測量距離。選擇一個單位的「像素」,然後使用畢達哥拉斯定理測量距離。 (x^2 + y^2 = z^2)

您可能真正在尋找的是讓近書架的高度與遠書架的高度相同。在這種情況下,你必須有更多的信息。你必須做2D - > 3D轉換:你有一個2D圖像,你需要從該圖像重建一個3D圖像。此時,您需要第三條信息,因爲您需要來自2個變量的3個變量(X,y,z)。

如果您正確校準了系統並有第二個參考點(例如激光線),那麼您可以使用OpenCV來做到這一點。這被稱爲結構化光線方法 - 有關更多信息,請參閱this link或google「機器視覺結構光」

0

由於您可以假設書架與下面的書架平行,因此書架之間的實際距離相等任何一點。您可以確定在深度爲X像素後,感知高度降低Y%。您應該能夠快速建立清晰的模式。實際空間中的所有平行線和直角將使數學變得簡單。

在每個書架的開頭和結尾畫出一些起點。你可以在這裏找到相關的數學題目:
http://en.wikipedia.org/wiki/Slope
http://en.wikipedia.org/wiki/Cartesian_coordinate_system