2017-04-10 65 views
0

我在我的項目中使用了Imagemagick。我使用ImageMagick的比較命令實現了一個子圖像檢測系統。它工作得很好,效果很好。通過閱讀文章,我得知ImageMagick比較了較大圖像像素內每個可能位置處小圖像的像素。並且我也知道ImageMagick使用Fuzzy因子檢測旋轉圖像和縮放圖像。儘管我對如何使用模糊因子該算法的行爲我找不到任何有關ImageMagick算法的文章。有關比較命令的這個算法如何實際工作的任何想法?在Imagemagick的比較命令中使用的算法

回答

1

ImageMagick中的模糊因子允許比較兩個像素並將其視爲相同,儘管它們的顏色可能略有不同。

訣竅理解它,是需要考慮的一個RGB顏色立方體有紅色,綠色,藍色,青色,品紅色,黃色和黑色和白色的頂點。 100%的模糊係數代表該立方體中最大可能的距離,即從黑色到白色的對角線的長度,並且所有事物都相對於該比例縮放。它在此圖中顯示爲點。

enter image description here

一般來說,我建議使用的百分比值而不是絕對值,因爲255的絕對模糊因數意味着所有的顏色是相同的(黑色=白色)的8位圖像上,而在16位圖像上,甚至很難感覺到相差255的兩種顏色。

作爲示例,讓我們看看單個黑色像素是否與單箇中灰度像素相同,其中49%模糊:

compare -metric ae -fuzz 49% xc:black xc:gray null: 
1 

N o,它不同,有一個像素差異。現在,讓我們再試一次允許像素爲51%不同但仍然匹配:

compare -metric ae -fuzz 51% xc:black xc:gray null: 
0 

現在,它們被認爲是相同的。

+0

我找不到ImageMagick開發者發表的關於ImageMagick中使用的算法的任何直接研究論文。你有什麼想法或鏈接從哪裏我可以找到關於在ImageMagick中使用的算法的直接研究論文? – Sach

+0

沒有這樣的算法。第一幅圖像中的每個像素與指定的模糊相比較,與第二幅圖像中的同一像素進行比較 - 「-metric ae」會告訴您不同像素的數量,其他度量如「RMSE」也可用。 –

+0

其他指標可以在http://www.imagemagick.org/Usage/compare/#statistics找到。 imagemagick比較對包括絨毛在內的所有指標的旋轉和縮放比較敏感。它只是搜索x和y中的偏移以獲得最佳匹配,並且不會搜索旋轉或縮放更改。 – fmw42