Lab色彩空间
Lab颜色模型是由CIE(国际照明委员会)制定的一种色彩模式。自然界中任何一点色都可以在Lab空间中表达出来,它的色彩空间比RGB空间还要大。另外,这种模式是以数字化方式来描述人的视觉感应, 与设备无关,所以它弥补了RGB和CMYK模式必须依赖于设备色彩特性的不足。
由于Lab的色彩空间要比RGB模式和CMYK模式的色彩空间大。这就意味着RGB以及CMYK所能描述的色彩信息在Lab空间中都能得以影射。Lab颜色模型取坐标Lab,其中L亮度;a的正数代表红色,负端代表绿色;b的正数代表黄色, 负端代表蓝色。
Lab颜色特征和直方图
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)
img_lab=cv2.cvtColor(img_bgr,cv2.COLOR_BGR2LAB)
cv2.namedWindow("input",cv2.WINDOW_GUI_NORMAL)
cv2.imshow("input",img_lab)
# 分别获取三个通道的ndarray数据
img_ls=img_lab[:,:,0]
img_as=img_lab[:,:,1]
img_bs=img_lab[:,:,2]
'''按L、A、B三个通道分别计算颜色直方图'''
ls_hist = cv2.calcHist([img_lab],[0],None,[256],[0,255])
as_hist = cv2.calcHist([img_lab],[1],None,[256],[0,255])
bs_hist = cv2.calcHist([img_lab],[2],None,[256],[0,255])
# m,dev = cv2.meanStdDev(img_lab) #计算L、A、B三通道的均值和方差
# print(m)
'''显示三个通道的颜色直方图'''
plt.plot(ls_hist,label='l',color='blue')
plt.plot(as_hist,label='a',color='green')
plt.plot(bs_hist,label='b',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)
图像和直方图显示:
参考:
https://blog.csdn.net/weixin_42795788/article/details/123865366
酷客网相关文章:
评论前必须登录!
注册