用python和PIL库写图像对数变换的代码
时间: 2024-05-07 14:22:49 浏览: 72
用Python代码实现图像增强之线性变换、对数变换、幂律变换、分段线性变换、灰度级分层、直方图均
以下是使用 Python 和 PIL 库实现图像对数变换的代码示例:
```python
from PIL import Image
import math
# 打开图像并转换为灰度图像
img = Image.open('input.jpg').convert('L')
# 获取图像的宽度和高度
width, height = img.size
# 对数变换的常数
c = 255 / math.log(1 + img.getextrema()[1])
# 对每个像素应用对数变换
for x in range(width):
for y in range(height):
# 获取像素的亮度值
pixel = img.getpixel((x, y))
# 计算对数变换后的值
new_pixel = int(c * math.log(1 + pixel))
# 更新像素值
img.putpixel((x, y), new_pixel)
# 保存变换后的图像
img.save('output.jpg')
```
以上代码将图像 `input.jpg` 转换为灰度图像,并对每个像素应用对数变换。对数变换的常数 `c` 使用了图像的最大亮度值。最后,将变换后的图像保存为 `output.jpg`。
阅读全文