首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >逐个打开图像,绘制矩形,然后保存到另一个文件夹中

逐个打开图像,绘制矩形,然后保存到另一个文件夹中
EN

Stack Overflow用户
提问于 2019-06-25 05:24:36
回答 1查看 257关注 0票数 0

我想打开一个文件夹,在那里有几个图像,在每个图像中将绘制一个矩形,并以相同的原始名称保存在另一个文件夹中

问题是,图像被创建但被覆盖,并且我不能自动使用相同的名称保存。我想我不能很好地定义for循环。

代码语言:javascript
复制
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

此行可以工作,但不会使用原始名称进行保存

代码语言:javascript
复制
cv2.imwrite(r'other_dir\img.png',im)
EN

回答 1

Stack Overflow用户

发布于 2019-06-25 09:02:55

代码语言:javascript
复制
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)

其思想是使用一个变量来存储输出文件夹的完全限定文件名+现有文件名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56744141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档