写一段python代码实现指数拉伸算法的并显示增强后图像,要求只对灰度值在[20-50]范围内的灰度值进行拉伸
时间: 2024-05-03 19:20:38 浏览: 76
图片灰度拉伸算法代码-灰度拉伸matlab代码-灰度拉伸python代码-图片对比度增强代码-图像直方图拉伸
5星 · 资源好评率100%
以下是Python代码实现指数拉伸算法并显示增强后图像的答案:
```python
import numpy as np
import cv2
# 读取原始灰度图像
img = cv2.imread('gray_img.jpg', cv2.IMREAD_GRAYSCALE)
# 对灰度值在[20-50]范围内的像素进行指数拉伸增强
c_min = 20
c_max = 50
gamma = 0.4 # 指数值可根据实际效果调整
img_enhanced = np.zeros_like(img)
img_enhanced[img >= c_max] = 255
img_enhanced[img <= c_min] = 0
img_enhanced[np.logical_and(img > c_min, img < c_max)] = 255 * ((img[np.logical_and(img > c_min, img < c_max)] - c_min) / (c_max - c_min)) ** gamma
# 显示原始图像和增强后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Enhanced Image', img_enhanced)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,'gray\_img.jpg'为原始灰度图像的文件路径,需要根据实际情况进行修改。
注意:在上述代码中并没有使用任何第三方库或工具实现指数拉伸增强,而是直接使用numpy和opencv库的函数进行实现,这样能够避免不同环境下库的不匹配问题。
阅读全文