我使用Desktopmagichttps://pypi.python.org/pypi/Desktopmagic/14.3.11#downloads 用下面的代碼(由50像素50像素)的屏幕截圖使用Python採取小:Win7上的Python:匹配來自2個不同PC的屏幕截圖?
from desktopmagic.screengrab_win32 import (
getDisplayRects, saveScreenToBmp, saveRectToBmp, getScreenAsImage,
getRectAsImage, getDisplaysAsImages)
def snap_shot(left_offset, top_offset, width, height, file_name):
right=left_offset+width
bottom=top_offset+height
saveRectToBmp(file_name, rect=(left_offset, top_offset, right, bottom))
我也使用枕頭比較截圖給參考圖像
from PIL import Image
def compare_images(f1,f2):
h1 = Image.open(f1).histogram()
h2 = Image.open(f2).histogram()
rms = math.sqrt(functools.reduce(operator.add,map(lambda a,b: (a-b)**2, h1, h2))/len(h1))
return rms
一切工作正常,直到我試圖將代碼和參考圖像遷移到新的PC。 對於人眼而言,在PC1上拍攝的截圖與在PC2上截取的截圖沒有區別,但我的compare_images函數看起來有所不同。
當查找PC1上拍攝的參考圖像和PC2上的屏幕截圖之間的精確匹配時,測試失敗。
那麼.... 2臺Windows電腦需要相同的渲染桌面窗口需要些什麼? 我假設他們是相同的硬件,屏幕截圖將匹配100%。但關鍵因素是什麼?雙方擁有相同的顯卡是否足夠?你認爲什麼因素可以發揮作用?
在此先感謝