[英]Calculate CV2 Homography by points and line
實際上可以在查找單應性中使用線對應。
幾年前,我們在一個項目中實施了這種方法。 在簡化所有數學的過程中,我們想出了簡單的技巧。 我們將每一行a*x + b*y + c = 0
轉換為點(a/c, b/c)
// *** Don't copy paste this code, read below! ***//
Point2f convertPointsToHomogeneousLine(Point2f p1, Point2f p2) {
Point3f p1h(p1.x, p1.y, 1);
Point3f p2h(p2.x, p2.y, 1);
Point3f lineHomo(p1h.y*p2h.z - p1h.z*p2h.y,
p1h.z*p2h.x - p1h.x*p2h.z,
p1h.x*p2h.y - p1h.y*p2h.x);
Point2f lineHomoNorm(lineHomo.x / lineHomo.z,
lineHomo.y / lineHomo.z);
return lineHomoNorm;
}
並通過這個點里面。 我記得我還挖掘了findHomography
的 OpenCV 實現,並將這條線插入到里面的某個地方來解決步驟。 在 OpenCV 內部,在通過求解步驟之前對點進行了一些歸一化。 因此,您需要跳過此步驟以獲得此類積分。
我們不在生產中使用它。 用戶需要通過在圖像和儀表系統中提供線和點來手動校准相機。 界面過於復雜,穩定性差。 但在你的情況下,我認為它可以更好地工作。 如果你會自動找到線路和信件。
PS請注意,在論文中他們使用了一些標准化技術。 它將提高穩定性。 我們面臨穩定性問題,在我們的旅程中沒有解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.