前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现计算图像RGB均值方式

Python实现计算图像RGB均值方式

作者头像
砸漏
发布2020-11-02 10:09:55
4.3K0
发布2020-11-02 10:09:55
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

要求

存在一个文件夹内有若干张图像,需要计算每张图片的RGB均值,并计算全部图像的RGB均值。

代码

代码语言:javascript
复制
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 1 10:43:29 2018
@author: Administrator
"""
import os
import cv2
import 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

我就废话不多说了,大家还是直接看代码吧!

代码语言:javascript
复制
from PIL import Image
image = Image.open('./3.png')
print(image)#查看mode是否等于RGB,
image_rgb = image.convert("RGB")
image_rgb.getcolors()  

打印结果

代码语言:javascript
复制
<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均值方式就是小编分享给大家的全部内容了,希望能给大家一个参考。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档