像素级图像比较库。
项目描述
pixelmatch-py
一个快速像素级图像比较库,最初创建用于测试中比较截图。现在还支持PIL.Image实例的Python端口 https://github.com/mapbox/pixelmatch。
具有精确的 反走样像素检测 和 感知色彩差异度量。
from pixelmatch import pixelmatch
num_diff_pixels = pixelmatch(img1, img2, 800, 600, diff, threshold=0.1)
实现以下论文中的想法
- 在移动应用中使用YIQ NTSC传输色彩空间测量感知色彩差异 (2010, Yuriy Kotsarenko, Fernando Ramos)
- 反走样像素和强度斜率检测器 (2009, Vytautas Vyšniauskas)
安装
python -m pip install pixelmatch
示例用法
PIL.Image比较
from PIL import Image
from pixelmatch.contrib.PIL import pixelmatch
img_a = Image.open("a.png")
img_b = Image.open("b.png")
img_diff = Image.new("RGBA", img_a.size)
# note how there is no need to specify dimensions
mismatch = pixelmatch(img_a, img_b, img_diff, includeAA=True)
img_diff.save("diff.png")
原始图像数据比较
from pixelmatch import pixelmatch
width, height = 1920, 1080
img_a = [R1, G1, B1, A1, R2, B2, G2, A2, ...]
img_b = [R1, G1, B1, A1, R2, B2, G2, A2, ...]
data_diff = [0] * len(img_a)
mismatch = pixelmatch(img_a, img_b, width, height, data_diff, includeAA=True)
API
pixelmatch(img1, img2, width, height, output, threshold, includeAA, alpha, aa_color, diff_color, diff_mask, fail_fast)
img1,img2— 要比较的图像的RGBA图像数据。 注意:图像维度必须相同。width,height— 图像的宽度和高度。output— 要写入diff的图像数据,或None如果不需要diff图像。请注意,所有三个图像都需要相同的维度。threshold— 匹配阈值,范围从0到1。较小的值会使比较更敏感。默认为0.1。includeAA— 如果为true,则禁用检测和忽略反走样像素。false是默认值。alpha— 差分输出中未更改像素的混合因子。范围从0(纯白色)到1(原始亮度)。默认值为0.1。aa_color— 差分输出中抗锯齿像素的颜色,格式为[R, G, B]。默认值为[255, 255, 0]。diff_color— 差分输出中不同像素的颜色,格式为[R, G, B]。默认值为[255, 0, 0]。diff_mask— 在透明背景(掩码)上绘制差分,而不是在原始图像上。如果检测到,则不会绘制抗锯齿像素。fail_fast- 如果为真,将在第一个不同像素后返回。
比较两个图像,写入输出差分,并返回不匹配像素的数量。
contrib.PIL.pixelmatch
比较两个图像,写入输出差分,并返回不匹配像素的数量。与 pixelmatch.pixelmatch 的 API 完全相同,但重要的是它接受 PIL.Image 实例作为图像参数(img1、img2 和 output),并且不需要指定宽度和大小。
示例输出
| 预期 | 实际 | 差分 |
|---|---|---|
变更日志
v0.3.0
- feat: 添加 fail_fast 选项 #144
v0.2.4
- type: 修复类型问题
- chore: 测试 Python 3.10
v0.2.3
- feat: 使包符合 PEP-561
v0.2.2
- typing: 使用
Sequence替代List作为RGBTuple - build: 切换到
poetry_core#81
v0.2.1
- feat: 添加通过 contrib.PIL.pixelmatch 比较 PIL.Image 实例的功能 #42
v0.2.0
- BREAKING CHANGE: 移除
options参数 #38 - docs: 在 README 中使用绝对 URL 对图像
v0.1.1
- fix: 修复快速路径中的错误 #18
v0.1.0
- 首次发布
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。
源分布
pixelmatch-0.3.0.tar.gz (9.1 kB 查看哈希值)
构建分布
pixelmatch-0.3.0-py3-none-any.whl (9.2 kB 查看哈希值)