首页 > 解决方案 > 有没有一种方法可以将图像保存在 OpenCV 执行期间创建的子文件夹中

问题描述

这是我第一次尝试使用 OpenCV 制作 python 项目。我想知道是否有办法将 OpenCV 捕获的图像存储到子文件夹中。

目前在运行 ImageCapture 功能时,它会捕获照片并将其存储在所有用户的同一文件夹中。

for (x,y,w,h) in faces:
     cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)        
     sampleNum=sampleNum+1
     cv2.imwrite("TrainingImage\ "+name +"."+Id +'.'+ str(sampleNum) + ".jpg", gray[y:y+h,x:x+w])

名称和 ID 由用户在调用 ImageCapture 函数之前给出。有没有什么方法可以将图像存储到用户给出的名称的子文件夹中?

标签: pythonopencvtkinter

解决方案


创建文件夹不是一项工作OpenCV,您可以使用您使用的编程语言来完成它。

就您而言,我想这就是您要寻找的。

import os, errno
import cv2

for (x,y,w,h) in faces:
    cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)        
    sampleNum=sampleNum+1
    try:
        if not os.path.exists("TrainingImage/" + name):
            os.makedirs("TrainingImage/" + name)
        cv2.imwrite("TrainingImage/"+ name +"/" + name + "." + str(Id) +'.'+ str(sampleNum) + ".jpg", gray[y:y+h,x:x+w])
    except OSError as e:
        if e.errno != errno.EEXIST:
            raise

推荐阅读