合并来自不同文件夹的图像并存储到不同的文件夹
Merging images from different folders and storing to a different folder
我有三个不同的文件夹 m1、m2 和 m3。 'm1' 文件夹包含格式为 image(i)_m1.png 的图像(其中 i =1 到 N),'m2' 文件夹包含格式为 image(i)_m2.png 的图像,并且 'm3' 文件夹包含格式为 image(i)_m3.png 的图像。我想像这样使用 cv2.merge 合并这些图像:(cv2.merge((image1_m1, image1_m2, image1_m3)) 并继续 N 次并得到存储在与包含 'N' 格式 image(i)_merged.png.
的合并图像不同的文件夹中
import pandas as pd
import cv2
import numpy as np
import glob
import os
filenames1 = glob.glob("data_folder/m1/*.png")
filenames1.sort()
filenames2 = glob.glob("data_folder/m2/*.png")
filenames2.sort()
filenames3 = glob.glob("data_folder/m3/*.png")
filenames3.sort()
for f1 in filenames1:
for f2 in filenames2:
for f3 in filenames3:
img1 = cv2.imread(f1)
img2 = cv2.imread(f2)
img3 = cv2.imread(f3)
img_m1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img_m2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
img_m3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)
img_rgb = cv2.merge((img_m1, img_m2, img_m3))
cv2.imwrite("data_folder/merge/img_name.png", img_rgb)
你的问题不完整。我假设您对 for 循环有疑问。
您可以将嵌套的 for 循环替换为:
for f1,f2,f3 in zip(filenames1,filenames2,filenames3):
我有三个不同的文件夹 m1、m2 和 m3。 'm1' 文件夹包含格式为 image(i)_m1.png 的图像(其中 i =1 到 N),'m2' 文件夹包含格式为 image(i)_m2.png 的图像,并且 'm3' 文件夹包含格式为 image(i)_m3.png 的图像。我想像这样使用 cv2.merge 合并这些图像:(cv2.merge((image1_m1, image1_m2, image1_m3)) 并继续 N 次并得到存储在与包含 'N' 格式 image(i)_merged.png.
的合并图像不同的文件夹中import pandas as pd
import cv2
import numpy as np
import glob
import os
filenames1 = glob.glob("data_folder/m1/*.png")
filenames1.sort()
filenames2 = glob.glob("data_folder/m2/*.png")
filenames2.sort()
filenames3 = glob.glob("data_folder/m3/*.png")
filenames3.sort()
for f1 in filenames1:
for f2 in filenames2:
for f3 in filenames3:
img1 = cv2.imread(f1)
img2 = cv2.imread(f2)
img3 = cv2.imread(f3)
img_m1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img_m2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
img_m3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)
img_rgb = cv2.merge((img_m1, img_m2, img_m3))
cv2.imwrite("data_folder/merge/img_name.png", img_rgb)
你的问题不完整。我假设您对 for 循环有疑问。 您可以将嵌套的 for 循环替换为:
for f1,f2,f3 in zip(filenames1,filenames2,filenames3):