Note : Python-Opencv颜色空间转换(RGB->HSV)计算平均亮度

  • RGB颜色空间

 

在RGB模型的立方体中,
[1] - 原点对应的颜色为黑色,它的三个分量值都为0;
[2] - 距离原点最远的顶点对应的颜色为白色,三个分量值都为1.
[3] - 从黑色到白色的灰度值分布在这两个点的连线上,该虚线称为灰度线.
[4] - 立方体的其余各点对应不同的颜色,即三原色红、绿、蓝及其混合色黄、品红、青色.

  • HSV颜色空间

HSI 颜色空间可以用一个圆锥空间模型来描述,能清晰表现色调(Hue)、饱和度(Saturation, Chroma)和亮度(Intensity, Brightness)的变化情形.

色相 H(Hue) - 表示颜色的相位角. 红、绿、蓝分别相隔 120 度;互补色分别相差 180 度,即颜色的类别.

饱和度 S(Saturation) - 色彩的强度或纯度. 表示成所选颜色的纯度和该颜色最大的纯度之间的比率,范围:[0, 1],即颜色的深浅程度.

亮度 I(Intensity) - 表示颜色的明亮程度,通常以 0% (黑色) 到 100% (白色) 的百分比来衡量(人眼对亮度很敏感).

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 26 08:43:23 2020

@author: Aaron
"""
import cv2
import os.path
# import matplotlib.pyplot as plt
import numpy as np

filepath = 'G:/video/Img'         #图像文件所在目录
pathDir = os.listdir(filepath)

for allDir in pathDir:
    videopath =r'G:/video/Img/'+allDir
    image = cv2.imread(videopath)
    hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)
    H, S, V = cv2.split(hsv)
    v = V.ravel()[np.flatnonzero(V)]   #亮度非零的值
    average_v  = sum(v)/len(v)         #平均亮度
    
    #print(np.nonzero(V))
    # plt.imshow(hsv)

参考链接:python -- cv2.cvtColor()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

璃墟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值