gpt4 book ai didi

python - 如何将 numpy.zeros 数组可视化为 RGB 图像?

转载 作者:行者123 更新时间:2023-12-02 17:41:48 28 4
gpt4 key购买 nike

我正在使用带有 OpenCV 的 python 2.7 在 Ubuntu 上工作
我正在尝试在同一窗口中显示 4 张图像。
因为opencv对此没有任何功能,我将尝试制作一个。
我在 Stack Overflow 中进行了搜索,发现了一些复杂的解决方案,但在 C/C++ 中生成了我不知道的解决方案。

所以,我的策略是:
我有 4 张彩色 BGR 图像。所有 4 个相同大小:(x,y)
我将生成一个 4 倍于原始图像大小的零的 numpy 数组(2x,2y)
我将复制 numpy zero 数组中的每个图像,但位置不同,因此它们会将每个图像相邻地查看:

import cv2
import numpy as np

def ShowManyImages():




img1 = cv2.imread('img1.png',1)
img2 = cv2.imread('img2.png',1)
img3 = cv2.imread('img3.png',1)
img4 = cv2.imread('img4.png',1)

x,y,_ = img1.shape
print x, y # show: 500,500
img_final = np.zeros((x*2, y*2, 3), np.uint8)
print img_final.shape # show: 1000,1000,3
img_final[0:500,0:500,:] = img1[:,:,:]

cv2.imshow('final', img_final)


cv2.waitKey()

cv2.destroyAllWindows()



ShowManyImages()

但是,代码没有显示任何图像。我不知道为什么。有任何想法吗?

注意:为了使代码更短,我只展示了第一个 img (img1) 的代码

最佳答案

这是一种很少的方法stack假设 a0,a1,a2,a3 的操作作为四个3D (RGB) 图像阵列 -

a01 = np.hstack((a0,a1))
a23 = np.hstack((a2,a3))
out = np.vstack((a01, a23))

sample 运行 -
In [245]: a0 = np.random.randint(0,9,(2,3,3))
...: a1 = np.random.randint(0,9,(2,3,3))
...: a2 = np.random.randint(0,9,(2,3,3))
...: a3 = np.random.randint(0,9,(2,3,3))
...:

In [246]: a01 = np.hstack((a0,a1))
...: a23 = np.hstack((a2,a3))
...: out = np.vstack((a01, a23))
...:

In [247]: out.shape
Out[247]: (4, 6, 3)

因此,我们会让它们像这样堆叠 -
a0 | a1
-------
a2 | a3

关于python - 如何将 numpy.zeros 数组可视化为 RGB 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668284/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com