Python OpenCV图像直方图:全面指南
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 加载图像
img = cv2.imread('C:/Users/LENOVO/Desktop/c.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算彩色图像的直方图
hist1 = plt.hist(img.ravel(), 256)
hist2 = cv2.calcHist([img], [0], None, [256], [0, 255])
# 计算灰度图像的直方图
hist_gray = plt.hist(gray.ravel(), 256)
# 计算彩色图像各通道的直方图
b, g, r = cv2.split(img)
hist_b = cv2.calcHist([b], [0], None, [256], [0, 255])
hist_g = cv2.calcHist([g], [0], None, [256], [0, 255])
hist_r = cv2.calcHist([r], [0], None, [256], [0, 255])
# 显示图像和直方图
plt.subplot(2, 2, 1)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # 将BGR转换为RGB以供matplotlib显示
plt.title('彩色图像')
plt.subplot(2, 2, 2)
plt.imshow(gray, cmap='gray')
plt.title('灰度图像')
plt.subplot(2, 2, 3)
plt.plot(hist_b, color='b')
plt.plot(hist_g, color='g')
plt.plot(hist_r, color='r')
plt.title('RGB通道直方图')
plt.xlim([0, 256])
plt.subplot(2, 2, 4)
plt.plot(hist2)
plt.title('彩色图像直方图')
plt.tight_layout()
plt.show()
原文地址: https://www.cveoy.top/t/topic/jtgL 著作权归作者所有。请勿转载和采集!