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

  • RGB颜色空间

 

Note : Python-Opencv颜色空间转换(RGB->HSV)计算平均亮度_第1张图片

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

  • HSV颜色空间

Note : Python-Opencv颜色空间转换(RGB->HSV)计算平均亮度_第2张图片

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()

 

你可能感兴趣的:(计算机视觉,学习笔记,python,opencv)