Python如何对比两张同尺寸图像并将匹配像素替换为黑色
Python实现两张图像匹配位置置黑方案
完整可运行代码
import numpy as np # 示例图像数组 img1 = np.array([[[1,1,1],[2,2,2]],[[3,3,3],[4,4,4]]]) img2 = np.array([[[1,1,1],[1,1,1]],[[3,3,3],[1,1,1]]]) # 生成像素匹配掩码:对应位置三个通道全相等则为True match_mask = (img1 == img2).all(axis=-1) # 拷贝img1作为结果基底,避免修改原始图像数据 result = img1.copy() # 匹配位置替换为黑色像素 result[match_mask] = [0, 0, 0] print(result)
输出结果
[[[0 0 0] [2 2 2]] [[0 0 0] [4 4 4]]]
逻辑说明
(img1 == img2)逐元素对比两个数组的每个值,返回和原图像同形状的布尔数组,相等位置为True.all(axis=-1)沿最后一个维度(RGB通道维度)做全匹配判断,只要有一个通道值不同,就判定为像素不匹配,最终得到高×宽形状的布尔掩码- 该逻辑对常规0-255范围的uint8类型真实图像(PIL、OpenCV读取的图像都属于该类型)完全通用,无需调整
内容的提问来源于stack exchange,提问作者db9
相关产品推荐
相关产品推荐

