【发布时间】:2019-12-21 09:44:55
【问题描述】:
我在一个目录中有两种类型(A 和 B)的图像,我想像这样将它们添加在一起(而不是连接):
A1.jpeg + B1.jpeg = Merged1.jpeg
A2.jpeg + B2.jpeg = Merged2.jpeg
...
AN.jpeg + BN.jpeg = MergedN.jpeg
我不知道如何自定义我的代码,以便它适用于整个目录:
import cv2
import os
for i,filenames in os.walk('.'):
A1 = cv2.imread('A1.jpeg',0)
B1 = cv2.imread('B1.jpeg',0)
image = cv2.add([A1,B1])
filename = ('Merged' + {i} + '.jpeg')
cv2.imwrite(filename, image)
有什么想法吗?谢谢
编辑:
我在 for 循环中添加了计数器,因为您无法像以前那样定义 for 循环。
import cv2
import os
i=0
for filenames in os.walk('.'):
i = i + 1
A = "A" + str(i) + ".jpeg"
B = "B" + str(i) + ".jpeg"
Ai = cv2.imread(A,0)
Bi = cv2.imread(B,0)
image = cv2.add([Ai,Bi])
filename = ('Merged' + str(i) + '.jpeg')
cv2.imwrite(filename, image)
但它只添加了 A1 和 B1。这是计算 for 循环的错误方法吗?
【问题讨论】:
-
关于您的编辑,通过打印检查 A 和 B 是什么。即使 cv2 没有找到文件,它也会保持沉默。