用Python实现对数变换图像增强的代码
时间: 2024-03-01 16:28:19 浏览: 160
用Python代码实现图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层、直方图均
以下是使用Python实现对数变换图像增强的代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 对数变换函数
def log_transform(c, img):
# 归一化像素值
img = img / 255.0
# 对数变换
img_log = c * np.log(1 + img)
# 反归一化像素值
img_log = (img_log * 255).astype(np.uint8)
return img_log
# 调用对数变换函数
img_log = log_transform(10, img)
# 显示原图和增强后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Log Transformed Image', img_log)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先通过`cv2.imread`函数读取了一张图像。接下来,我们定义了一个对数变换函数`log_transform`,其中`c`是一个常数,用于控制对数变换的强度。在函数中,我们首先将像素值归一化到`[0, 1]`的范围内,然后进行对数变换,最后将像素值反归一化到`[0, 255]`的范围内。最后,我们调用`log_transform`函数对图像进行增强,并通过`cv2.imshow`函数显示原图和增强后的图像。
阅读全文