opencv直方图均衡化python
时间: 2023-04-30 19:00:21 浏览: 74
OpenCV是一个计算机视觉库,提供了很多图像处理功能。在python中使用OpenCV进行直方图均衡化可以使用cv2.equalizeHist()函数。示例代码如下:
```python
import cv2
img = cv2.imread('image.jpg',0)
equ = cv2.equalizeHist(img)
res = np.hstack((img,equ)) #stacking images side-by-side
cv2.imwrite('res.png',res)
```
首先读入图片,然后使用cv2.equalizeHist()函数进行直方图均衡化,最后保存图片。
相关问题
python opencv 直方图均衡化
直方图均衡化是图像处理领域中对图像进行自适应增强的一种方法,可以增强图像的对比度,提高图像质量,使图像更加清晰明亮。
用Python OpenCV实现直方图均衡化的步骤如下:
1. 读取图像:使用cv2.imread()函数读入图像。
2. 转换为灰度图像:使用cv2.cvtColor()函数将彩色图像转换为灰度图像。本步骤可以省略,但是灰度图像处理速度更快。
3. 计算直方图:使用cv2.calcHist()函数计算灰度图像的直方图,并使用matplotlib将其可视化,以便观察图像的像素分布情况。
4. 计算累计分布函数:使用np.cumsum()函数计算直方图在每个灰度级上的累积值。
5. 均衡化处理:计算累计分布函数的最小值,并将其作为均衡化后每个灰度级的新值。使用cv2.LUT()函数将旧灰度级映射为新灰度级,实现图像的均衡化。
6. 结果展示:使用matplotlib将均衡化后的图像和直方图进行展示,以便比较处理前后的差异。
上述步骤实现了Python OpenCV直方图均衡化的基本流程,可以根据需要进行调整和优化,以达到更好的图像增强效果。
python opencv直方图均衡化
直方图均衡化是一种用于增强图像对比度的技术,可以通过拉伸图像中灰度级的分布来使其更加平滑,从而使图像中的细节更加清晰。在Python中,可以使用OpenCV库来实现直方图均衡化。
下面是一个简单的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg', 0)
# 进行直方图均衡化
equalized = cv2.equalizeHist(img)
# 显示原始图像和均衡化后的图像
cv2.imshow('Original', img)
cv2.imshow('Equalized', equalized)
cv2.waitKey(0)
```
在上面的示例中,首先读取了一张灰度图像,然后使用 `cv2.equalizeHist()` 函数进行直方图均衡化,最后通过 `cv2.imshow()` 函数显示原始图像和均衡化后的图像。
需要注意的是,直方图均衡化只适用于灰度图像,如果要对彩色图像进行直方图均衡化,需要先将其转换为灰度图像。