对比度拉伸 读入一张灰度图像,进行对比度拉伸(线性变换): ( 1)均匀变亮。 ( 2)均匀变暗。 ( 3)选择一个合适的[a,b]区间,进行线性变换。 将灰度图像、均匀变亮图像、均匀变暗图像、 [a,b]区间线性变 换图像在同一个窗口带标题显示。
时间: 2024-05-06 16:17:27 浏览: 29
图像处理C语言(读入图像,直方图均衡化,灰度线性变化,灰度拉伸)
5星 · 资源好评率100%
以下是基于Python的代码实现:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读入灰度图像
img = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCALE)
# 均匀变亮
bright_img = cv2.addWeighted(img, 1.2, np.zeros(img.shape, img.dtype), 0, 0)
# 均匀变暗
dark_img = cv2.addWeighted(img, 0.8, np.zeros(img.shape, img.dtype), 0, 0)
# [a,b]区间线性变换
a = 50
b = 200
linear_img = cv2.convertScaleAbs(img, alpha=(255.0/(b-a)), beta=(-255.0*a/(b-a)))
# 显示图像
titles = ['Original Image', 'Bright Image', 'Dark Image', 'Linear Image']
images = [img, bright_img, dark_img, linear_img]
for i in range(4):
plt.subplot(2, 2, i+1)
plt.imshow(images[i], cmap='gray')
plt.title(titles[i])
plt.xticks([]), plt.yticks([])
plt.show()
```
其中,需要将灰度图像替换为你自己的灰度图像。该代码将显示四张图像,分别是原始图像、均匀变亮图像、均匀变暗图像和 [a,b] 区间线性变换图像。你可以根据需要更改参数 a 和 b 来调整线性变换的效果。
阅读全文