Search code examples
imageopencvcomputer-visionwebcam

Saving images in different folders using opencv


I've been trying to save images from my webcam in different folders but it doesnt work. what im trying to achieve is im trying to save 5 images per folder from my webcam but it doesnot work. Can somebody please help? Thanks P.S here is my code

def createFolder(directory):
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print ('Error: Creating directory. ' +  directory)

import os 
import cv2 
import time 

video_capture = cv2.VideoCapture(0)
counter = 0
while(video_capture.isOpened()):
    location = f'D:/DATA_SCIENCE/anand_fabrics/{counter}'
    ret, frame = video_capture.read()
    cv2.imwrite(os.path.join(location , f"frame{counter}.jpg"), frame)
    if counter % 5 == 0:
        createFolder(f'D:/DATA_SCIENCE/anand_fabrics/{counter}')
    counter = counter + 1 

Solution

  • You are saying you switch folder every 5 images, yet you change the path every single image:

    while(video_capture.isOpened()):
        location = f'D:/DATA_SCIENCE/anand_fabrics/{counter}'
        ...
        counter = counter + 1 
    

    So basically you are trying to write to a non-existing path.

    Try this:

    video_capture = cv2.VideoCapture(0)
    counter = 0
    while(video_capture.isOpened()):
        if counter % 5 == 0:
            location = f'D:/DATA_SCIENCE/anand_fabrics/{counter}'
            createFolder(loaction)
        ret, frame = video_capture.read()
        cv2.imwrite(os.path.join(location , f"frame{counter}.jpg"), frame)
        counter = counter + 1