我在找到相同校準工件的多個視圖中的相應點時遇到了問題。 下面您可以看到校準目標的示例圖像。排序2D座標
我需要排序所有圓形標記的二維座標,並確保在所有視圖中的相應(相同)的標記物具有在標記矢量相同的索引。 任何人都可以給我一個線索如何處理這樣的事情? 非常感謝。
我在找到相同校準工件的多個視圖中的相應點時遇到了問題。 下面您可以看到校準目標的示例圖像。排序2D座標
我需要排序所有圓形標記的二維座標,並確保在所有視圖中的相應(相同)的標記物具有在標記矢量相同的索引。 任何人都可以給我一個線索如何處理這樣的事情? 非常感謝。
我不知道我完全明白你想要什麼,但我可以幫忙。
你的神器是不錯的,因爲它是一架飛機,所以你可以從一個圖像走向另一個圖像與單應。一旦你有了homography,你的問題或多或少地完成了。
我曾經寫了一個程序,這樣做:
cv::imread()
)cv::surf()
)findHomography()
與CV_RANSAC
基本上,你會得到類似的東西:http://blogs.oregonstate.edu/hess/files/2010/10/sift_demo_screenshot1.jpg
而我認爲這是你想要的:你有一個轉換,匹配你的兩個圖像之間的標記。 (這種變形是一種單應性,比我給出的鏈接中的一束線要少得多,這是一個小矩陣,它可以「吞食」圖像1中標記的座標,並「回退」相應標記的座標在image2中(使用SIFT代替SURF,但它們幾乎完全相同)
我認爲我的問題有點不同。我得到了計算圓形標記的二維像素座標並返回point2D矢量(標記位置)的程序。我需要的是對標記進行排序,並確保(例如)第一張圖像中的標記i = 5的標記與所有其他圖像中標記i = 5的標記相同。 – Marcin 2011-04-05 11:38:19
太棒了!如果我理解正確,對於每個圖像,您都可以獲得一個'矢量
您仍然可以使用類似的方法。與Fezvez將特徵檢測(圖像中的哪些點是有趣的)和特徵描述(關於該點的特徵)相結合的方法不同,您自己的代碼已經提供了一個檢測部分(圓心位於哪裏)。不同於Fezvez的方法。
現在您需要生成一組假定的匹配(猜測哪個集合對應哪個集合)。你可以在每個圓圈位置使用特徵描述符來做到這一點(可能有一個大窗口)。有關在特定位置提取描述符的示例,請參見此vl_sift section on custom frames。請注意,您可能需要將圖像重新歸一化以說明局部仿射變形。使用SIFT的距離比測試或其他系統的潛在其他距離度量。
一旦你找到了匹配,你就可以將它送入像OpenCV的findHomography這樣的強大的單應性求解器來拒絕異常值(由於噪音/其他問題不可避免地產生的無效匹配)。
或者,您可以手動建立矩形等角點的點對應關係,並將其提供給單應性求解器。
所有平面表面(如校準目標)的透視投影可以通過單應相關聯。任何你想在標記身份方面做的事都可以從變換中退出。
那些是管道的開口? – 2011-04-06 18:27:19
否。此目標僅用於圖像處理目的。 – Marcin 2011-04-07 05:50:17