利用jupyter进行图像全局线性灰度变换,并绘画全局线性灰度变换函数图
时间: 2024-05-07 22:18:53 浏览: 97
首先,我们需要导入必要的库,包括numpy和matplotlib。然后,我们将读取一张图片并将其转换为灰度图像。接下来,我们将计算新的像素值并将其应用于原始图像。最后,我们将绘制变换函数图。
以下是代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# 读取图片并将其转换为灰度图像
img = mpimg.imread('image.jpg')
gray_img = np.dot(img[...,:3], [0.2989, 0.5870, 0.1140])
# 计算变换函数
a = 1.5
b = 50
new_gray_img = (a * gray_img) + b
# 将像素值截断到 [0, 255] 范围内
new_gray_img[new_gray_img > 255] = 255
new_gray_img[new_gray_img < 0] = 0
# 绘制变换函数图
x = np.arange(256)
y = (a * x) + b
plt.plot(x, y)
plt.title('Transformation Function')
plt.xlabel('Input Intensity')
plt.ylabel('Output Intensity')
plt.show()
# 显示原始图像和变换后的图像
fig, axs = plt.subplots(1, 2)
axs[0].imshow(gray_img, cmap='gray')
axs[0].set_title('Original Image')
axs[1].imshow(new_gray_img, cmap='gray')
axs[1].set_title('Transformed Image')
plt.show()
```
这将显示原始图像、变换后的图像以及变换函数图。您可以尝试使用不同的参数来进行实验,以了解全局线性灰度变换的效果。
阅读全文