HSV颜色特征和直方图

HSV色彩空间

HSV中颜色的参数分别是:色调(H),饱和度(S),明度(V)。对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。

由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛。在 HSV 颜色空间下,比 BGR 更容易跟踪某种颜色的物体,常用于分割指定颜色的物体。

HSV颜色特征和直方图

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_hsv = cv2.cvtColor(img_bgr,cv2.COLOR_BGR2HSV)
cv2.namedWindow("input",cv2.WINDOW_GUI_NORMAL)
cv2.imshow("input",img_hsv)

# 分别获取三个通道的ndarray数据
img_h=img_hsv[:,:,0]
img_s=img_hsv[:,:,1]
img_v=img_hsv[:,:,2]

'''按H、S、V三个通道分别计算颜色直方图'''
h_hist = cv2.calcHist([img_hsv],[0],None,[256],[0,255])
s_hist = cv2.calcHist([img_hsv],[1],None,[256],[0,255])
v_hist = cv2.calcHist([img_hsv],[2],None,[256],[0,255])
# m,dev = cv2.meanStdDev(img_hsv)  #计算H、V、S三通道的均值和方差

'''显示三个通道的颜色直方图'''
plt.plot(h_hist,label='H',color='blue')
plt.plot(s_hist,label='S',color='green')
plt.plot(v_hist,label='V',color='red')
plt.legend(loc='best')
plt.xlim([0,256])
plt.show()
cv2.waitKey(0)

图像和直方图显示:

HSV颜色特征和直方图

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

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!