2013-12-16 53 views
4

我已經將OpenCV提供的霍夫變換算法應用於圖像,現在我有一個行數組,每個行包含一個startPoint和一個endPoint。我看到我有多條線可以合併成單線(根據它們的斜率/距離)。霍夫變換過濾器行

如何合併多條具有相同斜率的線?

+0

您將需要通過點集運行迭代器並在各行之間進行相似性檢查。不過,你可能會嘗試並調整門檻。它會帶來稍好的結果。 – scap3y

+0

請提供樣本圖片。 – karlphillip

回答

2

建議使用相似性分數來比較兩條線段: - 加入線段的中點,爲您提供一條直線; - 將線段投影到該線上; - 用線上的橫座標表示四個投影終點。

設計得分函數 - 當兩個片段重疊時爲0; - 當間隙段與其他線段相交時爲0; - 當角度差趨於0時增加(可能是差值正弦的絕對值); - 當投影端點之間的差距與長度總和之比趨於0時增加。

使用這樣的相似度分數,您可以合併分段,例如使用貪婪進程。