OpenCV图像对比度增强方法
时间: 2023-11-02 10:19:20 浏览: 172
OpenCV通过直方图均衡化增强图像对比度
5星 · 资源好评率100%
OpenCV中提供了多种图像对比度增强的方法,常用的有直方图均衡化和对数变换。
1. 直方图均衡化
直方图均衡化是一种常用的图像增强方法,它通过对图像像素值的分布进行调整,使得图像的对比度更加明显。具体实现步骤如下:
```python
import cv2
img = cv2.imread('input.jpg', 0) # 读取灰度图像
# 直方图均衡化
equ = cv2.equalizeHist(img)
cv2.imshow('input', img)
cv2.imshow('output', equ)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.equalizeHist()函数用于实现直方图均衡化。
2. 对数变换
对数变换也是一种常用的图像增强方法,它通过对图像像素值进行对数变换,使得图像的对比度更加明显。具体实现步骤如下:
```python
import cv2
import numpy as np
img = cv2.imread('input.jpg')
# 对数变换
c = 255 / np.log(1 + np.max(img))
log_img = c * (np.log(img + 1))
# 数据类型转换
log_img = np.uint8(log_img)
cv2.imshow('input', img)
cv2.imshow('output', log_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,c是一个缩放系数,用于将对数变换后的像素值映射到[0,255]范围内。np.log()函数用于计算对数变换后的像素值,np.uint8()函数用于将像素值转换为8位无符号整数类型。
阅读全文