时间:2021-05-22
要求
存在一个文件夹内有若干张图像,需要计算每张图片的RGB均值,并计算全部图像的RGB均值。
代码
# -*- coding: utf-8 -*-"""Created on Thu Nov 1 10:43:29 2018@author: Administrator"""import osimport cv2import numpy as np path = 'C:/Users/Administrator/Desktop/rgb'def compute(path): file_names = os.listdir(path) per_image_Rmean = [] per_image_Gmean = [] per_image_Bmean = [] for file_name in file_names: img = cv2.imread(os.path.join(path, file_name), 1) per_image_Bmean.append(np.mean(img[:,:,0])) per_image_Gmean.append(np.mean(img[:,:,1])) per_image_Rmean.append(np.mean(img[:,:,2])) R_mean = np.mean(per_image_Rmean) G_mean = np.mean(per_image_Gmean) B_mean = np.mean(per_image_Bmean) return R_mean, G_mean, B_mean if __name__ == '__main__': R, G, B= compute(path) print(R, G ,B)这里需要注意cv2.imread()读取顺序为BGR问题。
注意
路径不能出现中文,不然容易出错。
错误如下:
TypeError: 'NoneType' object is not subscriptable
结果
补充知识:Image得到图片像素的RGB
我就废话不多说了,大家还是直接看代码吧!
from PIL import Imageimage = Image.open('./3.png')print(image)#查看mode是否等于RGB,image_rgb = image.convert("RGB")image_rgb.getcolors()打印结果
<PIL.PngImagePlugin.PngImageFile image mode=P size=500x332 at 0x7F53383FADA0>[(10990, (192, 0, 128)),#10990表示像素总数,(192, 0, 128)表示RGB值 (7589, (224, 224, 192)), (5706, (192, 128, 128)), (3913, (0, 64, 0)), (137802, (0, 0, 0))]以上这篇Python实现计算图像RGB均值方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#图像处理之图像均值方差计算的方法。分享给大家供大家参考。具体如下://本函数均是基于RGB颜色空间计算//定义图像均值函数(RGB空间)pub
Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值。DataFrame数据格式fillna方式实现groupby方式实现D
主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波、方框滤波、高斯滤波和中值滤波.给图像增加噪声:importcv2importnumpy
用Python进行图像赋值,在1RGB基础上,加入光流两个通道,代码如下所示:importnumpyasnpimportcv2importmatplotlib.
tf.reduce_mean函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。