import cv2import numpy as npfrom matplotlib import pyplot as plt # 读取图片并转为灰度图像img = cv2.imread("image.jpg", 0) # 计算灰度直方图hist = cv2.calcHist([img], [0], None, [256], [0, 256]) # 显示灰度直方图plt.hist(img.ravel(), 256, [0, 256])plt.show() # 计算二维直方图hsv = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)hist2d = cv2.calcHist([hsv], [0, 1], None, [180, 256], [0, 180, 0, 256]) # 显示二维直方图plt.imshow(hist2d, interpolation="nearest")plt.show()
时间: 2024-04-26 08:22:23 浏览: 215
这段代码是用Python中的OpenCV库来计算和显示图片的灰度直方图和二维直方图。首先,使用cv2.imread()函数读取一张图片并转为灰度图像。然后,使用cv2.calcHist()函数计算灰度直方图和二维直方图。最后,使用matplotlib库中的plt.hist()函数和plt.imshow()函数分别显示灰度直方图和二维直方图。其中,灰度直方图使用一维的256个bin来表示灰度级别的分布情况,而二维直方图则使用180个bin表示色调(hue)的分布情况,256个bin表示饱和度(saturation)的分布情况。
阅读全文