簡體   English   中英

Python Pillow圖像質量在linux中不同

[英]Python Pillow image quality different in linux

我有一個機器人玩一個由硒驅動的在線游戲。 它通過利用圖像識別(查找子圖像)來工作。 在Windows中,我的機器人工作正常; 但是,我的機器人在Ubuntu中不起作用。

機器人的工作原理如下:

  1. 獲取selenium中元素的屏幕截圖
  2. 使用枕頭加載截圖
  3. 在較大的屏幕截圖中找到子圖像(本地圖像)

我已經將問題追溯到我用來查找子圖像的函數。 它不起作用,因為Ubuntu上的屏幕截圖圖像質量不同,並且它無法進行逐像素匹配。

從Windows運行的工作針和干草堆圖像在Ubuntu上工作正常,反之亦然 - 從Ubuntu創建的非工作針和干草堆圖像集在Windows和Ubuntu上都不起作用。

我的截圖在Windows中總是大約6KB,在Ubuntu中大約是5KB。

當我在PIL中打開我的本地“針”圖像並保存它時,它從1.7KB變為1.5KB並且因此不起作用。 這是代碼的非500行版本:

# imports and everything else here..

browser.save_screenshot("haystack.png") # selenium screenshot
haystack = Image.open("haystack.png")
needle = Image.open("needle.png") # the needle is a local file

haystack.save("haystack_new.png","PNG",quality=100) # DEBUGGING
needle.save("needle_new.png","PNG",quality=100) # DEBUGGING

# call "needle in a haystack" locator function here

誰能告訴我出了什么問題? 為什么linux截圖質量較差? 我應該安裝不同版本的zlib還是僅使用opencv?

不同的瀏覽器(可能還有操作系統/窗口管理器)以不同的方式實現顏色渲染 - 因此顯示的像素值可能具有不同的R,G,B值強度,這些值對於人眼是不可見的,但是它們之間的屏幕截圖進行跨平台像素比較。瀏覽器/平台無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM