首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python枕头图像质量在linux中的不同

Python枕头图像质量在linux中的不同
EN

Stack Overflow用户
提问于 2016-01-09 10:11:25
回答 1查看 374关注 0票数 3

我有一个机器人,它玩一个由selenium驱动的网络游戏。它通过使用图像识别(查找子图像)来工作。在Windows中,我的bot工作得很好;但是,我的bot在Ubuntu中不工作。

机器人的工作方式如下:

  1. 获取selenium中元素的屏幕截图。
  2. 使用枕头加载屏幕截图
  3. 在大屏幕截图中查找子图像(本地图像)

我把这个问题追溯到了我用来查找子图像的函数。它不能工作,因为屏幕截图的图像质量是不同的Ubuntu,它不能做一个像素的像素匹配。

来自Windows的工作针和干草映像集在Ubuntu上工作得很好,反之亦然--从Ubuntu创建的非工作针和干草映像集在Windows和Ubuntu上都不能工作。

我的截图在Windows中是~6KB,在Ubuntu中是~5KB。

当我在PIL中打开本地“指针”图像并保存它时,它从1.7KB变为1.5KB,因此无法工作。这是代码的非500行版本:

代码语言:javascript
复制
# 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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-09 12:25:04

不同的浏览器(可能还有OS/Window Manager)实现不同的彩色渲染,因此显示的像素值可能具有不同强度的R、G、B值,这对人的眼睛是不可见的,但使得浏览器/平台间屏幕截图的跨平台像素比较无效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34692164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档