如何为图像唯一像素值统计添加阈值过滤逻辑并转为字典?
处理图像像素过滤并保存为字典
需求说明
已将图像读取为NumPy数组,通过np.unique(img.reshape(-1, 3), axis=0, return_counts=True)统计出了1×3形式的唯一像素值及其出现次数,现在需要添加逻辑过滤掉出现次数超过阈值的像素值,并将结果保存为字典。
完整实现代码
import numpy as np # 模拟读取图像为numpy数组 np.random.seed(seed=777) img = np.random.randint(low=0, high=255, size=(100, 100, 3)) # 统计唯一像素及出现次数 unique_pixels, counts = np.unique(img.reshape(-1, 3), axis=0, return_counts=True) # 设置阈值,可根据需求调整 threshold = 500 # 过滤并转换为字典:像素值转元组作为键,出现次数作为值 filtered_pixel_dict = {tuple(pixel): count for pixel, count in zip(unique_pixels, counts) if count <= threshold} # 查看结果 print("过滤后的像素统计字典:") print(filtered_pixel_dict)
关键逻辑说明
- 先将图像数组展平为N×3的二维结构,用
np.unique完成唯一像素和对应出现次数的统计 - 利用字典推导式筛选出符合次数要求的像素,由于NumPy数组不能直接作为字典键,所以将像素数组转为元组
- 只需修改
threshold变量的值,就能调整过滤的严格程度
内容的提问来源于stack exchange,提问作者user16971617
相关产品推荐
相关产品推荐

