python实现图像差异性分析(标记并记录差异点)

该博客主要介绍了一个Python脚本,用于比较两幅图像的RGB像素,并进行统计分析。脚本通过PIL库打开并转换图像,然后遍历每个像素,以其中一幅图像(max)为基准,对比两幅图像的预测情况。统计了两幅图像都预测出的像素、仅max预测出的像素和仅min预测出的像素,并用不同颜色在基础上标记结果。最后将处理后的图像保存。
摘要由CSDN通过智能技术生成
from PIL import Image
import os


def RGB_compare(base_layer_path, min_size_path, max_size_path, save_path):
    # 加载图像min表示图像1,max表示图像2
    min_size = Image.open(min_size_path)
    min_size = min_size.convert('RGBA')
    max_size = Image.open(max_size_path)
    max_size = max_size.convert('RGBA')
    base_layer = Image.open(base_layer_path)
    base_layer = base_layer.convert('RGBA')
    both = 0  # 记录两幅图都预测出的像素个数
    max_min = 0  # 记录max预测出但是min没有预测出的像素个数
    min_max = 0  # 记录min预测出但是max没有预测出的像素个数
    # 获取图像尺寸
    heigh, width = min_size.size
    for i in range(heigh):
        for j in range(width):
            # 以max作为图像判别标准
            min_r, min_g, min_b, min_a = min_size.getpixel((i, j))
            max_r, max_g, max_b, max_a = max_size.getpixel((i, j))
            # 如果max预测出来了
            if max_r == 128:
                # 如果两张图像都预测出来了便标记为红色
                if min_r == 128:
                    both += 1
                    min_size.putpixel((i, j), (255, 0, 0, 255))
                # 大有小没有便标记为白色
                if min_r == 0:
                    max_min += 1
                    min_size.putpixel((i, j), (255, 255, 255, 255))
            elif max_r == 0:
                # 如果两个都没预测出来,直接设置为背景
                if min_r == 0:
                    min_size.putpixel((i, j), (0, 0, 0, 0))
                # 如果小的有大的没有,设置为绿色
                if min_r == 128:
                    min_max += 1
                    min_size.putpixel((i, j), (0, 255, 0, 255))
    print('both:{},max_min:{},min_max:{}'.format(both, max_min, min_max))
    base_layer.paste(min_size, (0, 0), min_size)  # 贴图操作
    base_layer.save(save_path + "/" + "1024_1280.png")  # 图片保存


if __name__ == "__main__":
    base_layer_path = r''
    min_size_path = r''
    max_size_path = r''
    save_path = r''
    RGB_compare(base_layer_path, min_size_path, max_size_path, save_path)

请添加图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
图像差异比较是指在计算机视觉领域中,对比两幅或多幅图像差异程度的一种方法。通常用于图像匹配、图像检索和图像质量评估等应用中。 图像差异比较可以通过比较图像的像素值、颜色分布、纹理、形状等特征来实现。最简单的方法是逐像素比较两幅图像的像素值,通过计算差异值或差异率来评估两幅图像差异程度。这种方法常用于图像质量评估和图像检索中。 另一种常用的方法是计算图像的结构相似性指数(structural similarity index, SSIM)。SSIM考虑了图像的亮度、对比度和结构等特征,通过计算亮度、对比度和结构相似性的加权平均值,得到一个0到1之间的相似度值,用于衡量两幅图像的相似程度。SSIM在图像质量评估、图像检索和图像对齐等领域具有广泛应用价值。 除了上述方法外,还有一些其他的图像差异比较方法,如基于颜色直方图的差异比较、基于感知哈希的差异比较、基于形状描述符的差异比较等。这些方法都有各自的特和适用范围,在具体应用中选择合适的方法进行图像差异比较。 总而言之,图像差异比较是计算机视觉领域中常用的一种技术,能够评估图像之间的差异程度。通过比较像素值、颜色分布、纹理和形状等特征,可以得到不同的差异度量,从而实现图像匹配、图像检索和图像质量评估等任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZRX_GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值