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()
Python OpenCV图像直方图:全面指南

原文地址: https://www.cveoy.top/t/topic/jtgL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录