我正在编写使用图像检测算法的自动化脚本。我最近注意到,同一页面上的文本在不同的屏幕上看起来不同(至少在最大化时)(第一个屏幕是 1280x1024,第二个屏幕是 1440x990)。
例如,这是两个屏幕上的文本的放大版本。上面的一个是在 1440x990 上拍摄的,下面的一个是在 1280x1024 上拍摄的:
我努力了:
- 更改分辨率
- 颜色深度
但放大后文本看起来仍然不同。这对我来说可能是一个大问题,因为自动化脚本使用像素级图像识别。
知道是什么导致了这种差异以及如何消除它吗?我更喜欢它在 1280x1024 上的样子
答案1
LCD 屏幕存在问题。与 CRT 屏幕不同,LCD 在再现图像时使用物理像素。LCD 面板中物理像素的实际数量称为“原始分辨率”。由于像素在此处具有物理尺寸,因此当您设置与原始分辨率不同的分辨率时,显示器不能只是增加或减少像素数量,而是根据所需的分辨率使用不同的算法转换图像。当您在 1440x990 显示器上以 1280x1024 分辨率最大化图像时,它会拉伸图像并使用不同的效果(如抗锯齿)使图像适合您当前的分辨率。此外,如果您在两个显示器上设置相同的分辨率,您将无法获得所需的质量,因为在这种情况下“原始分辨率”将与实际分辨率不同,并且显示器将转换您的图像以适应物理像素大小。此外,以上所有内容都考虑您使用光栅图像,因为矢量图像(如图像外的文本、网页中的 fe)具有不同的转换算法,可为您提供任何分辨率的最佳质量。
答案2
答案3
最终我发现有一个选项可以禁用子像素字体平滑功能(我在 Win7 中工作)。
可以通过执行以下步骤来完成:
- 单击“开始”
- 类型外观
- 选择“调整 Windows 的外观和性能”
- 转到“视觉效果”选项卡
- 取消勾选“平滑屏幕字体边缘”
在 1440x990 屏幕上执行此操作后,文本变得类似于我在 1280x1024 屏幕上看到的“纯”文本。