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