python opencv同时显示多张图片并保持图像比例
时间: 2023-05-22 09:04:22 浏览: 97
可以使用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默认)。可以根据需要修改代码中的图片路径、子图数量、画布大小等参数。
相关问题
python opencv按照比例对原图像缩放
要按照比例对原图像进行缩放,可以使用Python和OpenCV库来实现。以下是一个代码示例:
```python
import cv2
def resize_image_proportionally(image_path, scale):
# 读取图片
img = cv2.imread(image_path)
# 获取原始分辨率
height, width = img.shape[:2]
# 按比例缩放
new_height = int(height * scale)
new_width = int(width * scale)
resized_img = cv2.resize(img, (new_width, new_height))
# 输出结果
cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 调用函数进行缩放
image_path = 'path_to_image.jpg' # 替换为实际的图像路径
scale = 0.5 # 替换为想要缩放的比例
resize_image_proportionally(image_path, scale)
```
这段代码会按照指定的比例对原图像进行缩放,并在窗口中显示缩放后的图像。你可以替换`image_path`变量为你想要缩放的图像的路径,以及替换`scale`变量为你想要的缩放比例。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Python Opencv等比例缩放图片](https://blog.csdn.net/FriendshipTang/article/details/124118026)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [Python-OpenCV对图片进行缩放](https://blog.csdn.net/Scarlett2025/article/details/117964622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
python中opencv按比例缩放图片
要按比例缩放图片,可以使用cv2.resize()函数,并将缩放比例作为参数传递给函数。
下面是一个示例代码:
```
import cv2
# 加载图像
img = cv2.imread('image.jpg')
# 获取原始图像的宽度和高度
height, width = img.shape[:2]
# 设置缩放比例
scale_percent = 50
# 计算缩放后的新宽度和高度
new_width = int(width * scale_percent / 100)
new_height = int(height * scale_percent / 100)
# 缩放图像
resized_img = cv2.resize(img, (new_width, new_height), interpolation=cv2.INTER_AREA)
# 显示原始图像和缩放后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Resized Image', resized_img)
# 等待用户按下任意键退出程序
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,首先加载了一张图像,并获取图像的宽度和高度。然后设置了缩放比例为50%,并计算出了缩放后的新宽度和高度。最后使用cv2.resize()函数缩放了图像,并使用cv2.imshow()函数显示原始图像和缩放后的图像。