我有兩個圖像,我想要一個響應(true或false)來知道它們是不同的。 圖像尺寸不一樣。無論大小的Python圖像比較
回答
簡單虛設方法:調整最大圖像以匹配的大小最小的圖像和比較。
考慮以下的圖像和分別從1枚舉它們至4:
要比較的兩個圖像i
和j
,使用調整最大他們到另一個的尺寸3瓣lanczos,通過做img1.resize(img2.size, Image.ANTIALIAS)
便於在PIL
中找到。現在您繼續進行比較,比如使用Comparing image in url to image in filesystem in python中描述的度量。
下面是使用分別的相似的結果,所述度量SSIM和NRMSE在鏈接的答案給出:
圖像1
- > 2:[0.98,0.97];
→3:[0.96,0.98];
→4:[0.99,0.99];
圖2:
- > 3:[0.98,0。97];
→4:[0.98,0.93];
圖3:
- > 4:[0.97,0.98]。
這些值爲最大1,表示根據度量標準圖像完全相同。因此,正如您所看到的,這些值非常接近1.您所要做的就是在該附近選擇一個閾值,並且如果由度量標準給出的結果高於閾值,則返回True
,否則返回。
如果拍攝尺寸爲16:9或4:3的照片,並且必須將其與正方形進行比較,我可能會將其裁切爲兩側,並且只保留其中心以匹配方形,而不是調整其大小(從而拉伸/扭曲它)。但是,根據您必須實現的功能,圖像來源等,調整大小仍然可以是更好的方法。 –
沒有方法將是完美的,但你可以嘗試:
- 定義定義爲圖像大小的百分比的樣本大小
- 定義要採取
- 分發樣本的樣本數在兩個圖像上的區域
- 在每個樣本上,平均樣本區域中所有像素的顏色值
- 對於每對平均樣本區域顏色值,驗證它們是w ithin一些小的誤差等於
- 定義一個匹配樣本數量的閾值,用於在您熟悉的水平上平衡假陰性和假陽性
- 如果滿足閾值,則返回表示圖像匹配的結果,否則返回結果標誌着他們不
所以,說你開始2個圖像,大小100X100 200X200和,你決定要在每個維度的10%樣品的地區,有4個樣品。您將平均和比較:
- x0-9,y0-9到x0-19,y0-19
- x90-99,y0-9到x180-199,y0-19
- X0- 9,y90-99到x0-9,y180-199
- x90-99,y90-99到x180-199,y180-199
- 1. FFT圖像比較(理論)
- 2. drawImage()方法繪製的圖像很小,無論圖像大小
- 3. 圖像無論大或小在HTML
- 4. Python中的比較大於/小於
- 5. 比較中的圖像像素大小.Bat
- 6. SQL大小比較
- 7. 在較大的圖像上顯示較小的圖像
- 8. 在較大的圖像中放置較小的圖像。
- 9. 無法將小圖像調整爲較大圖像
- 10. 用PHP比較圖像,不使用文件的日期/大小
- 11. 圖像插入和Excel中的大小比較
- 12. 如何使用im4java比較不同大小的圖像
- 13. 在窗口上的python圖像比較
- 14. PHP - 調整大小的圖像有較大的文件大小
- 15. 比較圖像
- 16. 圖像比較
- 17. Python的大陣比較
- 18. 如何獲取圖像大小到Facebook的評論圖像大小在Android
- 19. 居中包含圖像的DIV,無論窗口大小如何
- 20. 如何製作較大的背景圖片重複,無論瀏覽器大小?
- 21. 圖像調整大圖像,但填充較小的圖像
- 22. 圖像大小(Python,OpenCV)
- 23. 按內容比較一大組圖像
- 24. 用較大的圖像替換較小的圖像(在較大圖像加載後)
- 25. 無論屏幕大小如何製作圖像和自動調整大小?
- 26. 使用Python PIL調整大小的圖像較暗
- 27. Azure函數,縮略圖圖像大小比原始圖像大
- 28. 如何比較圖像與python
- 29. Python PIL圖像比較問題
- 30. 圖像大小調整 - 文件大小不像Python縮小
'return True' - 你去了。 (如果它們大小不一樣,它們總是不同的 - 我認爲你有不同的*不同的定義,你需要向我們解釋)。 –
「相同」是指一個圖像是另一個圖像的作物,一個是另一個圖像的縮放版本,另一個圖像具有與另一個不同的顏色空間或顏色深度,一個是不同的格式(jpg,png等)比其他還是別的? –
我的意思是說一個圖像可以調整大小。對於格式它們是由PIL標註的圖像,實際上它們是PIL對象 – tapioco123