写一段伽马变换的函数图像的代码
时间: 2024-10-08 10:20:36 浏览: 42
伽玛变换是一种非线性灰度变换,常用于增强对比度或调整图像的亮度。下面是一个简单的Python示例,使用matplotlib库来展示伽马变换的效果。这里假设我们有一个8位灰度图像数组`image`,伽马值通常取0.5到2之间:
```python
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
def gamma_correction(image, gamma=1.0):
inv_gamma = 1.0 / gamma
linear_contrast_image = image ** inv_gamma
return linear_contrast_image
# 加载图像
img = io.imread('your_image.png', as_gray=True) # 替换为你的图片路径
# 应用伽马变换
gamma_transformed_img = gamma_correction(img, gamma=2.2) # 可以尝试不同的伽马值
# 创建直方图
hist, bins = np.histogram(gamma_transformed_img.flatten(), bins='auto')
# 绘制原始图像和伽马变换后的图像
plt.figure(figsize=(10, 4))
ax1 = plt.subplot(121)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
ax2 = plt.subplot(122)
plt.imshow(gamma_transformed_img, cmap='gray')
plt.title(f'Gamma-transformed (gamma={2.2})')
# 绘制直方图
plt.figure()
plt.hist(linear_contrast_image.flatten(), bins=bins, color='blue')
plt.title('Histogram of Gamma-transformed Image')
plt.xlabel('Intensity')
plt.ylabel('Frequency')
# 显示图形
plt.show()
阅读全文