我有兩組圖像{H}和{L}。 {H}由512x512圖片組成。 {L}由{H}中的所有圖像組成,但縮小到32x32-128x128,並且壓縮僞像來自有損壓縮。在OpenCV中匹配相似的圖像
使用OpenCV將{H}中的圖像與{L}中的最接近匹配匹配的最佳方式是什麼?
我有兩組圖像{H}和{L}。 {H}由512x512圖片組成。 {L}由{H}中的所有圖像組成,但縮小到32x32-128x128,並且壓縮僞像來自有損壓縮。在OpenCV中匹配相似的圖像
使用OpenCV將{H}中的圖像與{L}中的最接近匹配匹配的最佳方式是什麼?
另一個雖然可能慢得多的方法是做Clustering by Compression (Arxviv.org, PDF)或者use the JPEG coefficients作爲要比較的模型數據,而不是通過其他壓縮方法壓縮的未壓縮圖像數據。另請參閱Google Scholar的第一篇論文articles related to。
通過壓縮進行聚類基本上意味着使用文件Y中的(統計)模型壓縮文件X,並與大小進行比較,以使用它自己的模型數據來壓縮X.
以下是關於using different statistical models for compression的一些背景知識。 JPEG壓縮uses Huffman coding or Arithmetic coding來壓縮DC係數表。
如果較小的圖像不僅僅是下采樣和/或裁剪版本,可能更快的另一種選擇是使用Wajih建議的SIFT或SURF算法。
那麼它在某種程度上是一個公開的問題。如果您需要根據事實匹配圖像,則不會出現仿射,透視變換,旋轉變換,那麼您所做的就是簡單地爲兩組設置一致的比例,並通過做一對一的匹配,比如相關匹配。如果您在圖像處理或計算機視覺方面知道一兩件事,您可以嘗試使用SURF,SIFT或Gist等先進的東西來匹配圖像。真的取決於你的需要。順便說一句,這將成爲一項更加困難的任務。
我有15年的圖像處理經驗,並且通常當我必須在Photoshop中精確對齊兩個幾乎相同(但可能略有不同)的圖像圖層時,我將頂層的混合模式設置爲排除(即XOR )。當所有像素的值完全相同時,這會使圖像全黑。
你可以用OpenCV做類似的事情。
確保您縮小圖像的大小以匹配較小圖像的尺寸並使用相同的插值,因爲縮略圖已按比例縮小。這可以是最近的鄰居,即。選取網格中的每個第n個像素(四捨五入爲整個像素或像素邊界)或雙三次(一個像素在4 * n個像素之間插值計算)類型。最近鄰顯然更快......
然後做一個直方圖,並計算一些統計數據,甚至計算差異的FFT。
根據我的統計數據,可以計算差異的中位數(黑色圖像)或差異的直方圖。 – peterhil 2011-06-02 21:17:40
目前,我只是製作一個HSV空間的直方圖,並採用具有最高相關性的對。我想知道是否有更好的方法來做到這一點,因爲準確性開始時很好(80%),但隨着分辨率的下降而變差(<30%)。圖像中沒有太多顏色差異。 – Dmi 2011-06-02 19:21:22
我不同意這種方法,你的HSV空間會給你顏色信息,你需要的東西,如果你理解正確,就是邊緣信息。爲此,您需要根據某個窗口大小獲取兩個圖像的相關性,最後再進行全面掃描,然後判斷圖像是否匹配。 – 2011-06-02 19:24:26
因此,我爲什麼要尋找更好的方法。我會看看SURF,我認爲它在OpenCV的一個示例中。 – Dmi 2011-06-02 19:27:27