如何使用opencv-python将多个图像合并为一个图像



我正在尝试在迭代一个函数的同时合并图像,该函数在文件夹中迭代以获取每个图像,现在我正在尝试合并所有图像,同时迭代并将它们合并为一个图像。

directories = [ x for x in os.listdir('.') if os.path.isdir(x) ]
image_list=[]
images = []
def randomFile(directory):
files_list = os.listdir(directory)
random_num = random.choice(files_list)
print(random_num,directory)
img_1=cv2.imread((os.path.join(directory,random_num)))
if img_1 is not None:
images.append(img_1)
files_list.remove(random_num)
img1_g_noise = cv2.merge(images)
return img1_g_noise
for x in directories[1:]:
randomFile(x)
cv2.imshow("img1_g_noise",randomFile(x))
cv2.waitKey(0)

我可以访问所有图像,但无法合并为一个图像,列表图像=[]包含所有三个图像的所有像素

您可以尝试替换img1_g_noise=cv2.merge(图像(带有:

img1_g_noise = cv2.cvtColor(images[0], cv2.COLOR_RGB2RGBA)
images.pop(0)
for img in images:
img1_g_noise = cv2.addWeighted(img1_g_noise,0.5,cv2.cvtColor(img, cv2.COLOR_RGB2RGBA),0.5,0)
return cv2.cvtColor(img1_g_noise, cv2.COLOR_RGBA2RGB)

在Python/OpenCV/Numbery中,如果所有4个图像都是相同的维度,那么,如果输入是img1、img2、img3、img4,则以下内容将生成一个输入图像的2x2拼贴图像。

img12 = np.hstack((img1, img2))
img34 = np.hstack((img3, img4))
result = np.vstack((img12, img34))

如果图像大小不相同,则将其裁剪或调整为相同大小。

最新更新