python实现图像对比度增强代码
时间: 2023-08-20 17:07:19 浏览: 109
好的,以下是 Python 实现图像对比度增强的代码:
```python
import cv2
def contrast_stretching(img):
# 将图像转换为灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 计算图像的最小值和最大值
min_val = gray_img.min()
max_val = gray_img.max()
# 对图像进行对比度拉伸
stretched_img = (gray_img - min_val) * (255 / (max_val - min_val))
# 将图像转换回 BGR 格式
stretched_img = cv2.cvtColor(stretched_img.astype('uint8'), cv2.COLOR_GRAY2BGR)
return stretched_img
```
这段代码将输入的图像转换为灰度图像,并计算出图像的最小值和最大值。然后对图像进行对比度拉伸,使图像的像素值范围从最小值到最大值映射到 0 到 255。最后将图像转换回 BGR 格式并返回。
相关问题
python实现彩色图像对比度增强代码
以下是Python实现彩色图像对比度增强的代码示例:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('image.jpg')
# 将图像转换为Lab颜色空间
lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)
# 分离亮度通道
l, a, b = cv2.split(lab)
# 对亮度通道应用直方图均衡化
l_eq = cv2.equalizeHist(l)
# 将处理后的亮度通道与原始色度通道合并
lab_eq = cv2.merge((l_eq, a, b))
# 将图像转换回BGR颜色空间
result = cv2.cvtColor(lab_eq, cv2.COLOR_LAB2BGR)
# 显示原始图像和处理后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Enhanced Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们使用OpenCV库来读取彩色图像。然后,我们将图像转换为Lab颜色空间,并分离亮度通道。接下来,我们对亮度通道应用直方图均衡化,然后将处理后的亮度通道与原始色度通道合并。最后,我们将图像转换回BGR颜色空间,并显示原始图像和处理后的图像。
python增强图像对比度的方法
可以使用 PIL 库中的 ImageEnhance 模块来增强图像对比度,具体实现方法是先打开图片,然后使用 ImageEnhance.Contrast(image) 方法将图片的对比度增强,最后保存图片。以下是范例代码:
```python
from PIL import Image, ImageEnhance
# 打开图片
image = Image.open('image.jpg')
# 增强对比度
contrast = ImageEnhance.Contrast(image)
image_contrast = contrast.enhance(1.5)
# 保存图片
image_contrast.save('image_contrast.jpg')
```
这段代码中的`1.5`参数值可以根据需要进行调整,值越大对比度越强,值越小对比度越弱。
阅读全文