RGB颜色特征和直方图

RGB色彩空间

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。

RGB颜色模型的优点是:

(1)易于理解;

(2)便于硬件实现,现代显示屏一般基于RGB模型;

(3)引入位分辨率(颜色深度),指一个像素中,每个颜色分量的比特数。位分辨率决定了色彩等级,例如8位颜色深度,每个颜色分量就有256种可能。

RGB颜色模型的缺点在于三个分量均用于表示色调,即如果改变某一个分量的数值,这个像素的颜色就发生了改变。在颜色定位等工程中,使用RGB模型就要同时考虑R、G、B三个变量、较为复杂。

使用opencv-python对图像颜色特征提取并绘制直方图

图像直方图的绘制调用opencv-python中的calcHist函数。

hist = cv2.calcHist([image],             # 传入图像(列表)
                    [0],                 # 使用的通道(使用通道:可选[0],[1],[2])
                    None,                # 没有使用mask(蒙版)
                    [256],               # HistSize
                    [0.0,255.0])         # 直方图柱的范围
                                         # return->list

RGB颜色特征和直方图

import numpy as np
import cv2
import matplotlib.pyplot as plt

# 读取图片
pic_file='./photo/cat.jpg'
img_bgr = cv2.imread(pic_file,cv2.IMREAD_COLOR)
cv2.imshow("input",img_bgr)
# 分别获取三个通道的ndarray数据
img_b=img_bgr[:,:,0]
img_g=img_bgr[:,:,1]
img_r=img_bgr[:,:,2]

'''按R、G、B三个通道分别计算颜色直方图'''
b_hist = cv2.calcHist([img_bgr],[0],None,[256],[0,255])
g_hist = cv2.calcHist([img_bgr],[1],None,[256],[0,255])
r_hist = cv2.calcHist([img_bgr],[2],None,[256],[0,255])
m,dev = cv2.meanStdDev(img_bgr)  #计算G、B、R三通道的均值和方差
# img_r_mean=np.mean(r_hist)  #计算R通道的均值
# print(m)
# print(dev)

'''显示三个通道的颜色直方图'''
plt.plot(b_hist,label='B',color='blue')
plt.plot(g_hist,label='G',color='green')
plt.plot(r_hist,label='R',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)

图像和直方图显示:

RGB颜色特征和直方图

参考:
https://blog.csdn.net/weixin_42795788/article/details/123865366

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!