python利用opencv写一个直方图均衡化
时间: 2023-11-21 12:04:58 浏览: 35
Python利用OpenCV实现直方图均衡化的步骤如下:
1. 导入必要的库:cv2、numpy和matplotlib.pyplot。
2. 读取图像并将其转换为灰度图像。
3. 计算原始图像的直方图并绘制。
4. 使用cv2.equalizeHist()函数进行直方图均衡化。
5. 计算均衡化后图像的直方图并绘制。
6. 显示原始图像和均衡化后的图像。
下面是一个简单的Python代码示例,用于实现直方图均衡化:
```
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像并将其转换为灰度图像
img = cv2.imread('bee.jpg', cv2.IMREAD_GRAYSCALE)
# 计算原始图像的直方图并绘制
hist = cv2.calcHist([img], [0], None, [256], [0, 255])
plt.figure(figsize=(10, 5))
plt.title('Original_Hist')
plt.plot(hist, color='b')
# 使用cv2.equalizeHist()函数进行直方图均衡化
img2 = cv2.equalizeHist(img)
# 计算均衡化后图像的直方图并绘制
hist = cv2.calcHist([img2], [0], None, [256], [0, 255])
plt.figure(figsize=(10, 5))
plt.title('EqualizeHist_Hist')
plt.plot(hist, color='k')
# 显示原始图像和均衡化后的图像
cv2.imshow('original', img)
cv2.imshow('EqualizeHist', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
```