2010-04-26 19 views
2

我的問題是我有一個詳細的街道地圖的圖像。在此地圖上,可以有一個以任意角度旋轉的標誌(如交通燈圖標)的某個小圖像,可能調整大小。我有一個位圖中的小圖像。如果在大拼貼圖像中存在,旋轉並調整大小的副本,是否有任何算法或技術可以找到此位圖?將旋轉的位圖匹配到拼貼圖像

這類似於與增強現實和定位標記圖像的問題,但我只與沒有透視變形2D。

編輯:小位圖和它與我想匹配的拼貼圖像中的副本是大致相同的大小,也許30%的最大尺寸的差異。旋轉是純2D的,沒有剪切或任何扭曲。

回答

3

這是一個非常棘手的問題。

第一:旋轉/調整大小的分辨率是多少?如果你有足夠的像素來避免混疊效應,那麼你可能會好,但如果這個符號的一個或另一個表示非常小(例如,在拼貼畫中很小,或者在樣本鏡頭中很小),旋轉到任意角度可能是不好的。

此外,你確定你沒有剪切或其他種類的影響?我假設一個純粹的2D旋轉,旋轉軸貫穿相機的中心(即,停止標誌將只是一個八角形,旋轉而不是剪切的八角形)。

有一兩件事你可以嘗試,如果你有耐心和樣本數據,是落實Viola and Jones' face matching algorithm,但爲標誌。基本上,您需要大量的訓練數據,在這些數據中,您已經從背景/像素中屏蔽掉了您感興趣的像素。然後,該算法是從該訓練數據中隨機選擇像素(「示例」),並且針對每個示例計算幾百到幾千個統計('特徵')。特徵可以是從紅色通道中當前像素強度到藍色通道中5×5鄰域的總和強度之間的任何值。然後,爲每個像素創建一個直方圖,並嘗試查找在直方圖上具有與背景像素分離的前景像素的特徵(即,前景全部位於直方圖的左側,背景右側)。然後,您可以選擇最適合該作業的功能,並運行它們以在拼貼畫中查找符號。

這是我的論文研究的一個朋友的簡要介紹。這類問題很難輕易解決,容易造成不好的解決方案。

如果你只是有一個符號和一個拼貼,只希望能有一個解決方案,可以基本卷積與拼貼的跡象。採取每一個的FFT,用零填充較小的圖像,使其尺寸與較大的相同,然後逐點乘法。然後,對結果執行反轉fft。根據旋轉和縮放的嚴重程度(如果您認爲它們非常不同,那麼您可能需要嘗試各種不同的縮放和旋轉技術),您會在拼貼中的符號位置看到尖峯。

第二種方法很容易在matlab中完成;否則,您需要一個類似fftw的庫來將其關閉。

+0

我在這兩種表示方式中都有足夠的分辨率,它們大小大致相似,可能大小相差30%。沒有剪切或任何形式的扭曲,只有2D旋轉(認爲自上而下)。我會看看這些鏈接,謝謝。 – Dmi 2010-04-26 02:49:03