使用python展示图像的像素值分布并保存
时间: 2024-03-06 07:48:46 浏览: 75
可以使用Python中的Matplotlib库展示图像的像素值分布,并使用Pillow库保存图像。
首先,我们需要导入所需的库:
```python
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
```
接下来,我们可以使用Pillow库读取图像,并将其转换为numpy数组:
```python
img = Image.open('image.jpg')
img_array = np.array(img)
```
然后,我们可以使用Matplotlib库中的plt.hist()函数展示图像的像素值分布:
```python
plt.hist(img_array.ravel(), bins=256, range=(0, 255))
plt.xlabel('Pixel Values')
plt.ylabel('Frequency')
plt.show()
```
最后,我们可以使用Pillow库中的Image.fromarray()函数将numpy数组转换回图像,并将其保存:
```python
new_img = Image.fromarray(img_array)
new_img.save('new_image.jpg')
```
完整代码如下:
```python
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
img = Image.open('image.jpg')
img_array = np.array(img)
plt.hist(img_array.ravel(), bins=256, range=(0, 255))
plt.xlabel('Pixel Values')
plt.ylabel('Frequency')
plt.show()
new_img = Image.fromarray(img_array)
new_img.save('new_image.jpg')
```
阅读全文