python 对比度增强
时间: 2023-10-12 12:05:56 浏览: 61
在Python中实现对比度增强可以使用线性变换的方法。你可以通过调整像素值的范围来改变图像的对比度。下面是一个示例代码:
```python
import cv2
import numpy as np
def contrast_enhancement(image):
# 将图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 计算灰度直方图
hist = cv2.calcHist([gray_image], [0], None, [256], [0, 256])
hist_cumsum = np.cumsum(hist)
# 计算原始图像的最小和最大像素值
min_pixel_value = np.min(gray_image)
max_pixel_value = np.max(gray_image)
# 计算线性变换的参数
a = 255 / (max_pixel_value - min_pixel_value)
b = -a * min_pixel_value
# 对每个像素值进行线性变换
enhanced_image = np.round(a * gray_image + b)
enhanced_image = enhanced_image.astype(np.uint8)
return enhanced_image
# 读取图像
image = cv2.imread("/home/xiaomingming/profile/xmm.jpg")
# 对比度增强
enhanced_image = contrast_enhancement(image)
# 显示原始图像和增强后的图像
cv2.imshow("Original Image", image)
cv2.imshow("Enhanced Image", enhanced_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先将图像转换为灰度图像,然后计算灰度直方图。接下来,计算原始图像的最小和最大像素值,并根据这些值计算线性变换的参数。最后,对每个像素值进行线性变换,以增强图像的对比度。你可以根据自己的需求调整参数来获得不同程度的对比度增强效果。
阅读全文