2012-05-10 120 views
4

我輸入與多邊形交點在OpenCV中

我有一個vector<Point2f>包含多邊形的輪廓。我也有一個需要與這個多邊形相交的點列表。

我要計算多少,這些點與多邊形相交的問題。我想在多個多邊形上重複此計算以查看哪一個包含最多點數。

OpenCV是否實現了自己的這種相交功能,還是我需要自己實現相交功能?我擔心如果我自己嘗試實施它,結果將會不必要地緩慢。如果OpenCV無法做到這一點,是否有其他免費的圖形庫可以執行此任務?

回答

3

pointPolygonTest完全符合您的要求,並且已經非常優化。該參數是一個Mat,您可以使用構造函數獲取點的矢量。

該函數確定點是位於輪廓內,位於外部還是位於邊上(或與頂點重合)。它相應地返回正值(內部),負值(外部)或零(在邊緣上)值。當measureDist = false時,返回值分別爲+1,-1和0。否則,返回值是該點與最近的輪廓邊之間的有符號距離。

你的問題似乎很容易並行,不過,即候選多邊形的每一批可能在不同的線程上運行,所以我肯定會考慮,如果你擔心性能。