核心代码:
计算图像直方图 [i]通道,mask=None, hitsize=256, range=[0,256]
hist = cv.calcHist([image], [i], None, [256], [0, 256])
完整代码
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
def his_demo(image):
# image.ravel()统计所有频次 bin=256, range=[0, 256]
plt.hist(image.ravel(), 256, [0,256])
plt.show()
def his_color_demo(image):
color = {'blue', 'green', 'red'}
for i, color in enumerate(color):
# 计算图像直方图 [i]通道,mask=None, hitsize=256, range=[0,256]
hist = cv.calcHist([image], [i], None, [256], [0, 256])
plt.plot(hist, color=color)
plt.xlim([0, 256])
plt.show()
img_file = r"F:\Python_study\python_image\opencv\image\lena.png"
src = cv.imread(img_file)
cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)
cv.imshow('imput image', src)
his_color_demo(src)
# his_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()
输出图像: