2
A
回答
1
如果你想比較兩個圖像,並只需要熬它歸結爲一個單一的數字,下面的工作。這是(例如)遺傳算法,要比較一組候選人,並選擇不同的至少從一個參考圖像的一個有用:
- 訪問的每一個像素,把它分解成其組成部分: R,G,B,& A(在去:
image.At(x,y).RGBA()
) - 減去從它們對應的像素的瓦爾斯RGBA瓦爾斯參考圖像英寸
- 廣場上的差異,它們加起來。
- 取的總和的平方根。
這個數字會給你的形象有多大區別一個大概的瞭解。
如果你知道這兩個圖像都是image.RGBA
的實例(或者你可以轉換它們),那麼你可以做更快的事情:直接從RGBA.Pix
獲取字節。這就是我在這裏做的,它的大致10倍比做img.At(x,y).RGBA()
每一個像素對更快:
func FastCompare(img1, img2 *image.RGBA) (int64, error) {
if img1.Bounds() != img2.Bounds() {
return 0, fmt.Errorf("image bounds not equal: %+v, %+v", img1.Bounds(), img2.Bounds())
}
accumError := int64(0)
for i := 0; i < len(img1.Pix); i++ {
accumError += int64(sqDiffUInt8(img1.Pix[i], img2.Pix[i]))
}
return int64(math.Sqrt(float64(accumError))), nil
}
func sqDiffUInt8(x, y uint8) uint64 {
d := uint64(x) - uint64(y)
return d * d
}
相關問題
- 1. 我如何比較圖像
- 2. 如何比較圖像(緩存圖像)?
- 3. 捕獲和比較圖像
- 4. 比較和匹配圖像
- 5. AutoIt - 比較PixelCheckSum和圖像
- 6. 比較圖像
- 7. 圖像比較
- 8. 和。減去比較SQL
- 9. 如何比較本地圖像和網絡圖像而不寫?
- 10. SIFT-圖像比較
- 11. 比較圖像matlab
- 12. AForge圖像比較
- 13. matlab圖像比較
- 14. iOS圖像比較
- 15. 如何比較圖像與python
- 16. 在Selenium中,如何比較圖像?
- 17. 如何比較兩個圖像uisng vb.net?
- 18. 逐像素比較圖像
- 19. 比較GIF圖像像素
- 20. 位圖圖像比較
- 21. 捕獲和比較指紋圖像
- 22. Java機器人和圖像比較
- 23. 你如何比較像素?
- 24. 量角器:如何比較全頁截圖與量角器圖像比較
- 25. 如何比較圖像以識別圖像中的人物?
- 26. 如何比較圖像字符串(名稱?)並更改圖像
- 27. 比較圖像(形狀sihlohette圖像)
- 28. 兩幅圖像的圖像比較
- 29. 如何掃描和比較Java中的圖像
- 30. 比較去年和今年的結果
也許這可以幫助您:http://codereview.stackexchange.com/questions/12700/comparing-two-images –
我用Resemble.js嘗試了這種方法,速度很慢。有什麼方法可以找出圖像之間的百分比差異嗎? – degendra
標準庫不包含這樣的代碼,你將不得不做一些編程。 – Volker