opencv编程实现:读取图像,绘制图像的直方图,并对图像进行直方图均衡化,并显示均衡化之后的图像。
时间: 2024-10-17 17:07:00 浏览: 53
在OpenCV(计算机视觉库)中,你可以按照以下步骤实现读取图像、绘制直方图、进行直方图均衡化以及显示结果:
1. **读取图像**:
使用`cv2.imread()`函数读取图像文件,例如:
```python
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
```
这里`cv2.IMREAD_COLOR`表示读取彩色图像。
2. **绘制直方图**:
使用`cv2.calcHist()`计算图像的直方图,然后通过`matplotlib`或其他绘图库展示:
```python
hist = cv2.calcHist([img], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
plt.figure()
plt.imshow(hist, cmap='gray')
plt.colorbar()
```
3. **直方图均衡化**:
`cv2.equalizeHist()`函数用于图像的直方图均衡化:
```python
equ_img = cv2.equalizeHist(img)
```
4. **显示原始图像和均衡化的图像**:
```python
cv2.imshow("Original Image", img)
cv2.imshow("Histogram Equalized Image", equ_img)
```
确保已经安装了`matplotlib`库,因为`imshow`函数在这里用于显示直方图。
5. **等待用户按键并关闭窗口**:
```python
cv2.waitKey(0)
cv2.destroyAllWindows()
```
`waitKey(0)`会暂停程序直到用户按下任意键,`destroyAllWindows()`则关闭所有OpenCV创建的窗口。
阅读全文