python - 如何 cv2.imshow 存储在 Numpy 数组中的图像?
问题描述
我有 2 个文件夹,每个文件夹包含 10 个图像,我已将它们加载到 Numpy 数组中并将它们连接起来(原始的单个 np 数组形状:10 128 128 3
,连接的 np 数组形状:)20 128 128 3
。现在我想循环 20 次并 cv2.imshow 每个图像,例如,第一个 '1 128 128 3',然后是 '2 128 128 3' 等等。但是我如何将这样的形状提供给 cv2.imshow?
我的代码:
import numpy as np
import cv2
import glob
first_images = np.array([cv2.imread(file) for file in glob.glob("/filepath/*.png")])
second_images = np.array([cv2.imread(file) for file in glob.glob("/filepath/*.png")])
num_of_first =first_images.shape[0]
num_of_second = second_images.shape[0]
image_array = np.concatenate((first_images,second_images),axis=0)
for image in range(image_array.shape[0]):
也许我可以做类似 single_image = image_array(image,,,) 的事情,然后将其重塑为 128x128x3?但我不知道该怎么做。
编辑 :
试图cv2.imshow(image_array[image, :,:,:])
得到
TypeError:找不到所需的参数“mat”(位置 2)
我改用 cv2.imwrite 并且能够得到我想要的。问题仍然是如何让 cv2.imshow 工作。
解决方案
我认为您需要将“shape”与 numpy 一起使用来获取数组大小而不是“len”。
推荐阅读
- snowflake-cloud-data-platform - 雪花 - 如果同一查询是内部查询的一部分,它是否使用结果缓存
- java - 更新 Firebase 数据库数据
- javascript - selenium-side-runner RegEx 返回 NULL
- html - 迭代rails中的引导选项卡内容
- javascript - React Suspense 延迟加载没有回退
- java - 在数组中插入一个值,用这个值显示这个数组
- java - 为什么这个java代码在检查访问时会破坏我的pdf?
- node.js - 部署到 Firestore Cloud Functions - “错误:找不到模块”
- html - 换行时如何使“文本对齐:左”居中?
- python - 将元组列表(不同长度)转换为字典