python plt 新建图像
时间: 2023-10-22 18:13:40 浏览: 29
在 Python 中使用 matplotlib 库可以创建图像。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 创建一个 5x5 的图像
plt.figure(figsize=(5, 5))
# 显示图像
plt.show()
```
在这个例子中,我们使用 `figure()` 函数创建一个 5x5 的图像,并使用 `show()` 函数显示它。你也可以添加更多的代码来绘制你想要的图像。
相关问题
python直方图均值化
Python直方图均衡化是图像处理中的一种操作,可以使图像的灰度值分布更加均匀,增强图像的对比度和细节。在Python中,可以使用PIL库和matplotlib库来实现直方图均衡化操作。
首先,使用PIL库读取图像并将其转换为灰度图像。然后,使用matplotlib库的hist函数绘制原图像的直方图。接下来,使用PIL库中的histeq函数对图像进行直方图均衡化处理,并将处理后的图像保存到img2变量中。最后,再次使用matplotlib库绘制处理后的图像以及其对应的直方图。
下面是一段实现图像直方图均衡化的Python代码示例:
```python
# 利用PIL库读取图像
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
# 将图像转成灰度图并读取到数组中
img = np.array(Image.open('./pictures/pp.jpg').convert('L'))
# 使用matplotlib的库绘制图片进行显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure() # 新建一个图像
plt.subplot(2, 2, 1)
plt.imshow(img, cmap='gray')
plt.title('原图')
plt.axis('off') # 不显示坐标轴
plt.subplot(2, 2, 2)
plt.imshow(img2, cmap='gray')
plt.title('均衡化之后图像')
plt.axis('off')
plt.subplot(2, 2, 3)
plt.hist(img.flatten(), 128)
plt.title('原图直方图')
plt.axis('off')
plt.subplot(2, 2, 4)
img2 = np.array(img2)
plt.hist(img2.flatten(), 128)
plt.title('均衡化之后图像直方图')
plt.axis('off')
plt.show()
```
通过这段代码,你可以看到原始图像、直方图均衡化后的图像以及两者对应的直方图。这样可以直观地观察直方图均衡化对图像的影响。
python opencv同时显示多张图片并保持图像比例
可以使用matplotlib库,将多张图片显示在一个画布上,并使用subplots函数设置每张图片的位置和大小,代码示例如下:
```python
import cv2
import matplotlib.pyplot as plt
# 读取多张图片
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
img3 = cv2.imread('image3.jpg')
# 新建一个画布,设置多个子图
fig, axis = plt.subplots(nrows=1, ncols=3, figsize=(10, 5))
# 在每个子图中显示一张图片
axis[0].imshow(img1[...,::-1])
axis[0].set_title('image1')
axis[1].imshow(img2[...,::-1])
axis[1].set_title('image2')
axis[2].imshow(img3[...,::-1])
axis[2].set_title('image3')
# 显示画布
plt.show()
```
这段代码将读取三张图片(image1.jpg、image2.jpg、image3.jpg),并以每张图片为一个子图显示在一个画布上。img[...,::-1]用于转换BGR格式(OpenCV默认)为RGB格式(matplotlib默认)。可以根据需要修改代码中的图片路径、子图数量、画布大小等参数。