彩色图像对比度增强 在python中实现
时间: 2023-11-12 17:07:56 浏览: 30
彩色图像的对比度增强可以通过线性变换实现。具体实现步骤如下:
1. 将彩色图像转换为灰度图像。
2. 计算灰度图像的均值和标准差。
3. 对每个像素进行线性变换,将像素值映射到0-255之间。
4. 将处理后的像素值赋值给原图像对应的像素位置。
下面是一个实现示例:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('color_image.jpg')
# 将彩色图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算灰度图像的均值和标准差
mean, std = cv2.meanStdDev(gray)
# 线性变换,将像素值映射到0-255之间
alpha = 1.5
beta = -alpha * mean + 255 / 2
enhanced = cv2.convertScaleAbs(gray, alpha=alpha, beta=beta)
# 将处理后的像素值赋值给原图像对应的像素位置
result = np.zeros_like(img)
result[:,:,0] = enhanced
result[:,:,1] = enhanced
result[:,:,2] = enhanced
# 显示原图和处理后的图像
cv2.imshow('Original', img)
cv2.imshow('Enhanced', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个示例中,我们使用了OpenCV库中的cvtColor函数将彩色图像转换为灰度图像,使用了meanStdDev函数计算灰度图像的均值和标准差,使用了convertScaleAbs函数进行线性变换,最后将处理后的像素值赋值给原图像对应的像素位置。