Eda*_*diz 6 python concat image concatenation scikit-image
我想垂直连接很多图像。我曾经skimage读取图像然后在每次迭代中io读取图像并将vconcat新图像垂直连接到旧图像上。我的代码的结果没有连接图像,只是组合图像。如何使每次迭代中的每个图像相互垂直连接的任何想法。
我想垂直连接第一个图像和第二个图像
但我得到了这个结果
任何帮助,将不胜感激。
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')
Run Code Online (Sandbox Code Playgroud)
用 -
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)
Run Code Online (Sandbox Code Playgroud)
刚才的所有图像添加到list在for循环阅读这些条款后,并通过列表中np.concatenate
而不是skimage.io(这可能是由于版本或 CPU 问题),请考虑使用matplotlib.pyplot.imread列表理解或map. 下面用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()
Run Code Online (Sandbox Code Playgroud)
具体来说,对于 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, cmap='inferno', aspect='auto', interpolation='nearest')
plt.axis('off')
plt.savefig(os.path.join(spec_path, "Output.png"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
966 次 |
| 最近记录: |