首先要准备好两张图片哦
放到你的工程文件夹里面
然后 分享我的code(其实是由神奇的chat gpt生成的啦 没什么技术含量)
from PIL import Image, ImageChops
def resize_image(image, target_size):
# 获取目标尺寸
target_width, target_height = target_size
# 调整图片大小并保持原始比例
resized_image = image.resize((target_width, target_height))
return resized_image
def find_image_difference(image1_path, image2_path, output_path):
# 打开两张图片
image1 = Image.open(image1_path)
image2 = Image.open(image2_path)
# 获取两张图片的尺寸
image1_size = image1.size
image2_size = image2.size
# 确保两张图片大小一致
if image1_size != image2_size:
# 取两张图片尺寸的最大值作为目标尺寸
target_size = (max(image1_size[0], image2_size[0]), max(image1_size[1], image2_size[1]))
image1 = resize_image(image1, target_size)
image2 = resize_image(image2, target_size)
# 将图片转换为灰度图
gray_image1 = image1.convert("L")
gray_image2 = image2.convert("L")
# 比较两张灰度图的差异
diff = ImageChops.difference(gray_image1, gray_image2)
# 将差异图转换为彩色图像
diff_color = diff.convert("RGB")
# 获取差异图中的非零像素
diff_data = diff_color.getdata()
diff_data = [(255, 0, 0) if pixel != (0, 0, 0) else pixel for pixel in diff_data]
# 将标记差异的像素数据放回图像
diff_color.putdata(diff_data)
# 保存差异图
diff_color.save(output_path)
if __name__ == "__main__":
# 请替换为你自己的图片路径
image1_path = "XXXXXXX1.jpg"
image2_path = "XXXXXX2.jpg"
output_path = "output_difference_image.jpg"
try:
find_image_difference(image1_path, image2_path, output_path)
print("不同之处已标记并保存在output_difference_image.jpg")
except Exception as e:
print("发生错误:", e)
当然啦 需要两个包 也需要改一下图片地址,如果放到文件夹下就直接run
但是也可以用绝对路径哦
在下面给出 如果没有直接打开终端在自己的虚拟环境或者直接base 就行
或者直接在自己的默认 也没有关系哦 因为这个包 也不大
pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
这个镜像应该是没问题 如果出现意外请示一下 下面给出的其他镜像源
pip install 镜像_:)�东东要拼命的博客-CSDN博客
然后也不用担心图片大小的问题哦 我中间有处理的哦
talk is cheap , show me your code 哈哈
最后呈现效果图