颜色直方图

2022-05-28 16:27:24 浏览数 (2)

代码语言:javascript复制
import cv2
import matplotlib.pyplot as plt
o=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
cv2.imshow("original",o)
histb=cv2.calcHist([o],[0],None,[256],[0,255])#绘制B分量直方图
histg=cv2.calcHist([o],[1],None,[256],[0,255])#绘制G分量直方图
histr=cv2.calcHist([o],[2],None,[256],[0,255])#绘制R分量直方图
plt.plot(histb,color='b')
plt.plot(histg,color='g')
plt.plot(histr,color='r')
plt.show()
cv2.waitKey()
cv2.destroyAllWindows()

算法:颜色直方图是在许多图像检索系统中被广泛采用的颜色特征。它所描述的是不同色彩在整幅图像中所占的比例,而并不关心每种色彩所处的空间位置,即无法描述图像中的对象或物体。颜色直方图特别适于描述那些难以进行自动分割的图像。

hist=cv2.calcHist(images, channels, mask, histSize, ranges, accumulate)

  • images表示输入图像
  • channels表示指定通道编号,如果输入图像是灰度图像,该参数的值是[0]。如果输入图像是彩色图像,该参数的值是[0]、[1]、[2],分别对应通道B、G、R
  • mask表示掩码
  • histSize表示BINS的值
  • ranges表示像素值范围
  • accumulate表示累计(累积、叠加)标识。其默认值是False。如果设为True,则直方图在开始计算时不会被清零,计算的是多个直方图的累积结果,用于对一组图像计算直方图,可选参数

0 人点赞