使用OpenCV和Matplotlib绘制图像直方图和累积直方图
使用OpenCV和Matplotlib绘制图像直方图
本文将介绍如何使用OpenCV和Matplotlib库在Python中绘制图像的灰度直方图和累积直方图。
1. 导入必要的库
首先,我们需要导入必要的库:
import cv2
from matplotlib import pyplot as plt
import numpy as np
2. 加载图像并转换为灰度图像
接下来,我们需要加载图像并将其转换为灰度图像:
img = cv2.imread('c.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
3. 计算直方图
我们可以使用OpenCV的cv2.calcHist()函数计算图像的直方图:
hist = cv2.calcHist([gray], [0], None, [256], [0, 256])
4. 绘制直方图
我们可以使用Matplotlib的plt.hist()函数绘制直方图:
plt.subplot(221), plt.imshow(img, 'gray'), plt.title('Image')
plt.subplot(222), plt.hist(img.ravel(), 256, [0, 256]), plt.title('Histogram')
plt.xlim([0, 256])
plt.show()
5. 计算累积直方图
我们可以使用NumPy的cumsum()函数计算累积直方图:
cumulative_hist = np.cumsum(hist)
6. 绘制累积直方图
我们可以使用Matplotlib的plt.plot()函数绘制累积直方图:
plt.subplot(223), plt.plot(cumulative_hist), plt.title('Accumulated Histogram')
plt.xlim([0, 256]), plt.ylim([0, cumulative_hist.max()])
plt.show()
总结
本文介绍了如何使用OpenCV和Matplotlib库在Python中绘制图像的灰度直方图和累积直方图。代码示例展示了如何加载图像、计算直方图、绘制直方图和累积直方图。这些技术在图像处理和计算机视觉中有着广泛的应用。
原文地址: https://www.cveoy.top/t/topic/jtgx 著作权归作者所有。请勿转载和采集!