1

我有一個具有挑戰性的問題要解決。 Figure顯示綠色線條,這是從圖像派生的,紅色線條是從另一個圖像派生的邊緣。這兩個圖像都來自同一個相機,所以內在參數是相同的。只有外部參數不同,即在拍攝第二張圖像時會有輕微的旋轉和平移。從圖中可以看出,這兩組線很接近。我的任務是找出從第一幅圖像衍生出的邊緣與從第二幅圖像衍生出的邊緣之間的對應關係。找到圖像匹配邊緣的對應

我已經通過計算圖像1的邊緣到圖像2的邊緣之間的歐幾里得距離,通過計算相應的最近線段,通過計算幾個來源。但是,這種方法是不可接受的的情況,因爲在圖像1中存在邊緣,與圖像2中不相對應的其他邊緣接近,並且這將導致大量不匹配。

經過一些更多的研究,更少的來源提到豪斯多夫距離。我相信,這真的是我的問題的解決方案和紙

「Rucklidge,威廉J.‘高效查找使用 豪斯多夫距離’國際計算機視覺的24.3 (1997)對象:251 -270「。

似乎真的很有趣。

如果我得到它正確的文章闡述了計算模型邊緣到圖像邊緣平移的函數。然而,儘管在MATLAB中實現,但我完全失去了,從哪裏開始。如果可以將相同算法的僞代碼或MATLAB實現爲僞代碼,我將非常感激。

此外,我所知道的

「應用Hausdorff距離平鋪圖像分類」 link

「豪斯多夫迴歸」

然而,st生病了,我不確定如何最小化豪斯道夫距離。

注1:計算成本是不是事了,但速度更快的算法是首選

注2:我打開其他的算法和方法,只要有可用的僞代碼或開放實現來解決這個問題。

回答

0

您是否考慮過MATLAB的圖像註冊工具?

使用imregister(https://www.mathworks.com/help/images/ref/imregister.html),您可以插入兩個圖像,1作爲參考,一個作爲「移動」,它將使用仿射變換將它們一起註冊。函數調用僅僅是

[optimizer, metric] = imregconfig('monomodal'); 
output_registered = imregister(moving,fixed,'affine',optimizer,metric); 

以便更好地觀察,使用RegistrationEstimator命令打開了一個圖形用戶界面中,你可以導入2個圖像和玩它來註冊你的圖片。從那裏你可以導出未來圖像的代碼。

此外,如果您希望說明非剛性轉換,那麼存在imregdemons(https://www.mathworks.com/help/images/ref/imregdemons.html),其工作方式非常相似。

+0

非常感謝您的回覆。對於我的工作,我需要匹配從圖像中提取的邊緣,直接匹配圖像不是我的選擇。 仍然如您所建議的,我嘗試在邊緣圖像上使用Matlab圖像配準工具箱。不幸的是,結果是不正確的。 後來我用了imregdemons函數。輸出圖像與輸入圖像相同,除了線條有些失真之外。但是,對於確切的對應關係,還需要翻譯和輪播。但非常感謝您的努力和時間。 – Debaditya

+0

註冊是否必須是自動的?如果不是,那麼手動選擇點對並從中計算轉換可能會更好。 – Durkee

+0

是的,通過手動選擇一對點,它可以實現,如果我沒有錯,圖像周圍4-5點對就足夠了。但是,我必須至少爲1000個圖像執行此操作,因此我必須找到一種自動執行此操作的方法。 – Debaditya

0

您可以使用Matlab的bwdist函數計算Hausdorff距離。您將計算一幅圖像的距離變換,並在另一幅圖像的邊緣點進行評估,並取最大值。 (也可以取總和,在這種情況下稱爲倒角距離。)對於這個問題,您可能需要對稱的Hausdorff距離,所以您可以在兩個方向上進行計算。

Hausdorff和倒角距離都衡量特定對齊的匹配質量。爲了找到最好的註冊,你需要嘗試多個對齊轉換,並評估他們都在尋找最好的註冊轉換。正如另一個答案中所建議的,您可能會發現使用註冊現有工具比編寫自己的工具更容易。

+0

非常感謝您的回覆。我已經計算了與其他圖像邊緣端點相對應的一個像素圖像的距離變換,並且我還爲每個邊緣取得了最大值。現在我已經爲其他圖像的每個邊緣有一段距離。我很抱歉問這個問題,但是,如何使用這些信息創建信件? – Debaditya

+0

bwdist函數具有第二個返回值,它爲您提供最接近的相應像素的索引。 – nhowe

+0

再次感謝您的回覆。我會試一試,並會讓你知道結果。 – Debaditya