像素级图像比较库。
项目描述
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 查看哈希值)