我想打开一个包含多个图像的文件夹,在每个图像中将绘制一个矩形并以相同的原始名称保存,但保存在另一个文件夹中
问题在于图像已创建但被覆盖,我无法自动使用相同名称保存。我想我不能很好地定义for循环。
import cv2
import glob
path = r'dir\*.tif' # only .tif images
for file in glob.glob(path):
im = pl_image(file, size= x)
cv2.rectangle(im,(x1,y1),(x2,y2),(0, 255, 0),2)
cv2.rectangle(im,(x3,y1),(x4,y2),(0, 255, 0),2)
cv2.rectangle(im,(x5,y1),(x6,y2),(0, 255, 0),2)
cv2.rectangle(im,(x7,y1),(x8,y2),(0, 255, 0),2)
cv2.rectangle(im,(x9,y1),(x10,y2),(0, 255, 0),2)
cv2.imwrite('%s/%s.JPEG' % , im) # this line I do not how to define, should be smt like this
此行有效,但不会以原始名称保存
cv2.imwrite(r'other_dir\img.png',im)
答案 0 :(得分:0)
import cv2
import glob
path = r'dir\*.tif' # only .tif images
output_folder_path = "/home/output/"
for file in glob.glob(path):
im = pl_image(file, size= x)
output_file_name = output_folder_path+file.split("/")[-1]
cv2.rectangle(im,(x1,y1),(x2,y2),(0, 255, 0),2)
cv2.rectangle(im,(x3,y1),(x4,y2),(0, 255, 0),2)
cv2.rectangle(im,(x5,y1),(x6,y2),(0, 255, 0),2)
cv2.rectangle(im,(x7,y1),(x8,y2),(0, 255, 0),2)
cv2.rectangle(im,(x9,y1),(x10,y2),(0, 255, 0),2)
cv2.imwrite(output_file_name, im)
想法是要使用一个变量来存储输出文件夹的标准文件名+现有文件名