2011-10-11 46 views
1

這不是一個真正的二維問題,而是實際上是一個3D問題的簡化。所以這不是一個直接的圖像分析問題。使用Hough變換來查找線條,但也需要跟蹤這些線條上發現的點

我有一套2D點,我將用它來渲染3D表面貼圖。我可以將所有點繪製爲頂點,但這很浪費,因爲這些點中的很多點會形成線條和其他可以更容易渲染的簡單形狀。我可以使用OpenCV的Hough變換來查找這些行;然而,OpenCV函數並不告訴我我的集合中的哪些點會落在這些線上。

我需要知道點的任一子集躺在在Hough變換髮現線,所以我知道它們渲染爲頂點,或者是那些* 所以我知道不渲染他們。

換句話說,如果我不能以某種方式排除不再需要繪製的頂點,找到簡化的形狀並沒有什麼好處。

另一個細節:應用程序不斷添加可能或可能不需要渲染的新點。我想我可以根據需要在整個點集上重新運行霍夫變換(每個渲染幀一次),但這又是低效的,因爲圖像不一定會發生很大的變化。還有另一種解決問題的方法嗎?

+0

如果您使用PPHT而不是標準的Hough線轉換,而不是無限行,則會返回線段的終點。那麼它的一個簡單問題就是檢查你的哪些點(1)滿足hough線的方程,以及(2)它們是否落入兩個端點之間。 – AruniRC

回答

0

霍夫變換給出了線的方程(即無限長的線不是線段)。

一旦你有這些方程式,你可以測試如何far each point is from a line並決定它是否在線上(給定一些最大距離)。

當您添加新點時,您可以執行相同的測試以查看它們是否與任何現有線足夠接近。

+0

不會使用概率hough變換給線段? http://opencv.willowgarage.com/documentation/feature_detection.html#houghlines2 – AruniRC