如何在python中使用for循环垂直连接1000张图像?

问题描述

我想垂直连接很多图像。我使用skimage读取图像,然后在每次迭代中io读取图像,然后vconcat将新图像垂直连接到旧图像上。我的代码结果没有将图像连接起来,只是合并图像。关于如何使每次迭代中的每幅图像彼此垂直连接的任何想法。

我想垂直连接第一张图片和第二张图片

fist image

second image

但是我得到了这个结果

result

enter image description here

任何帮助将不胜感激。

data=[]
if nSpectogram <3765:
            for k in range (0,21):
                path=io.imread('E:\\wavelet\\spectrograms\\paz05\\'+'spec_'+isPreictal+'_'+str(nSpectogram+1)+'_'+str(k+1)+'.png')
                im_v_array=np.array(im_v)
                data.append(path)
            res=np.concatenate(data)
            plt.imshow(res,cmap='inferno',aspect='auto',interpolation='nearest')

解决方法

使用-

merged_img = []
for i in range(3):
    img = io.imread('https://machinelearningblogs.com/wp-content/uploads/2018/03/849825_XL-830x400.jpg')
    merged_img.append(img)

merge = np.concatenate(merged_img)

plt.imshow(merge)

enter image description here

在读取所有图像后,只需将它们添加到list循环中的for中,并将列表传递给np.concatenate

,

考虑将matplotlib.pyplot.imread与列表理解功能或skimage.io一起使用,而不是map(这可能是由于版本或CPU问题引起的)。下面用OP的两个图像进行演示。

import numpy as np
import matplotlib.pyplot as plt

img_paths = ["OP_Image_1.png","OP_Image_2.png"]

data = [plt.imread(img) for img in img_paths]
# data = list(map(mpimg.imread,img_paths))

res = np.concatenate(data)
plt.imshow(res,cmap='inferno',aspect='auto',interpolation='nearest')

plt.axis('off')
plt.show()

Plot Output


具体来说,对于OP的文件迭代:

import os
import numpy as np
import matplotlib.pyplot as plt

...
spec_path = r"E:\wavelet\spectrograms\paz05"                     # RAW STRING FOR BACKSLASHES
spec_file = f"spec_{isPreictal}_{str(nSpectogram+1)}_{{}}.png"   # F STRING FOR INTERPOLATION

if nSpectogram <3765:
   data = [plt.imread(os.path.join(spec_path,spec_file.format(k+1))) for k in range(21)]

   res = np.concatenate(data)
   plt.imshow(res,interpolation='nearest')
   
   plt.axis('off')
   plt.savefig(os.path.join(spec_path,"Output.png"))

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...