Python 如何在m*n数组中放置m*n数组?

Python 如何在m*n数组中放置m*n数组?,python,image,numpy,Python,Image,Numpy,我正在尝试将30px*30px的图像拼接成3000px*3000px的图像。如果有比我描述的更好的方法,请告诉我 我已经创建了BigArr=np.zero((30003000))。我有我的图像阵列(尺寸为30px*30px)。我想放置第一个图像,使其占据BigArr[0][0]和BigArr[29][29]之间的所有空间 有没有一个简单的方法可以做到这一点?有没有更简单的方法来做我想做的事情 编辑:第二个图像应该占据[0][30]->[59][29]等。假设您有足够多的图像来完全填充您的BigA

我正在尝试将30px*30px的图像拼接成3000px*3000px的图像。如果有比我描述的更好的方法,请告诉我

我已经创建了
BigArr=np.zero((30003000))
。我有我的图像阵列(尺寸为30px*30px)。我想放置第一个图像,使其占据
BigArr[0][0]
BigArr[29][29]
之间的所有空间

有没有一个简单的方法可以做到这一点?有没有更简单的方法来做我想做的事情


编辑:第二个图像应该占据
[0][30]
->
[59][29]
等。

假设您有足够多的图像来完全填充您的
BigArr
,并且您的图像可以存储在一些列表中,您可以使用所需的网格创建一个嵌套列表,并使用它生成这样的图像:

从matplotlib导入pyplot作为plt
将numpy作为np导入
#图像大小(宽x高)
img_w,img_h=(40,30)
f_img_w,f_img_h=(200300)
#最终图像中的行/列数
r=np.int32(f_img_h/img_h)
c=np.int32(f_img_w/img_w)
#生成一些图像(存储在N维数组中)
imgs=np.one((img_h,img_w,r*c),np.uint8)*5*(np.arange(r*c)+1)
#假定的程序起点:列表中存储的所有图像
imgs_list=[imgs[:,:,i]代表np.arange中的i(imgs.shape[2])]
#生成具有所需网格的嵌套列表
imgs_nested_list=[[imgs_list[y*c+x]代表np.arange(c)]代表np.arange(r)中的y]
#生成所需图像
大arr=np.block(imgs嵌套列表)
plt.图(1)
plt.imshow(大数组,vmin=0,vmax=255)
plt.show()
示例的输出如下所示:

希望有帮助

----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.8.1
Matplotlib:3.2.0rc3
NumPy:1.18.1
----------------------------------------

这对我来说很有效,只是我创建了一个统一图像的python列表,然后创建了一个M*N python数组,并在该数组上使用了
np.block(arr)