python - Python Pillow diff 操作没有得到正确的结果
问题描述
我正在按照此处的答案在两个图像之间执行差异。不知道为什么这条线在 Python 3 中不起作用。代码在>>>
操作员处失败。
diff_list_tuples = >>> [diff[0:2], diff[2:]] if diff else [(None, None), (None, None)]
所以我按照第一种方法的修改:
from PIL import Image
from PIL import ImageChops
from PIL import ImageDraw
file1 = 'file1.jpg'
file2 = 'file2.jpg'
im1 = Image.open(file1)
im2 = Image.open(file2)
diff = ImageChops.difference(im1, im2)
draw = ImageDraw.Draw(im2)
diff_list = list(diff.getbbox()) if diff.getbbox() else []
draw.rectangle(diff_list)
im2.convert('RGB').save('file3.jpg')
我不太明白出了什么问题,但它总是给我第二个文件的精确副本。任何线索将不胜感激。
环顾四周,我偶然发现了这篇文章。只需通过以下方式即可实现所需的结果:
if diff.getbbox():
diff.save('file3.jpg')
清除后,有人可以向我解释失败的方法到底想做什么,为什么失败?只是为了学习目的。
解决方案
推荐阅读
- python - 我想从 MongoDB 数据中获取内部条目,但外部条目与我需要的数据一致
- admob - 正在展示测试广告,但 AdMob 中没有真正的广告
- flask - 如何在不生成迁移脚本的情况下迁移 SQLAlchemy 数据库
- sqlalchemy - 如何在 FastAPI 上自动映射雪花数据库表
- linux - 使用并行和 wget 使用 linux 终端从 url 列表下载图像时控制文件名
- foreach - 我收到错误:Uncaught TypeError: document.querySelector(...) is null in the following code
- javascript - 有没有办法通过 Javascript 删除 Azure Blob 容器文件?
- angularjs - 混合应用程序上的常春藤(angular+angularjs)
- javascript - 从深层对象中删除回车符和换行符?
- javascript - Tesseract.js 一遍又一遍地识别相同的图像