将随机图像保存在python中的单独文件夹中

时间:2017-09-22 07:02:59

标签: python listdir

我面临一个小问题, 实际上我有一个函数,它从我提供给我的代码的视频生成这么多帧,然后保存在一个特定的文件夹中,然后我通过使用RND(随机)命令从该文件夹访问一些帧,现在我想要的是那些我的代码随机选择的随机帧也应保存在其他文件夹中,例如,如果有300帧,我的代码从这300帧中随机选择15帧,那么这15帧也必须保存在其他一些单独的文件夹中。 这是我的代码,

def video_frames(nameof_video,frame_savelocation,cropimages_save):
    vidcap = cv2.VideoCapture(nameof_video)
    success, image = vidcap.read()
    print(success)

    count = 1
    success = True
    while success:
        success, image = vidcap.read()
        cv2.imwrite(frame_savelocation+"/%d.jpg" % count, image)
        # save frame as JPEG file
        # if cv2.waitKey(10) == 27:                     # exit if Escape is hit
        #   break
        if count == 0:
            break
        count += 1
    print("frames saved in the desired location!!!!!")
        ##### crop faces from frame and save them----###
    for r in range(1, 15):
        random_imagecrop(frame_savelocation, cropimages_save)  #-----> function called
    return

def random_imagecrop(frame_savelocation,cropimages_save):
    #b=1
    crop_faces_path = frame_savelocation
    list_frames = os.listdir(crop_faces_path)  # dir is your directory path
    number_files = len(list_frames)

    rnd = random.randint(1, number_files)
    print("random:", rnd)
    image = face_recognition.load_image_file(frame_savelocation + "/" + str(rnd) + ".jpg")
    #pil_image.save("Datasets/randomimg" + "/" + str(b) + ".jpg")
    #b=b+1
    # Find all the faces in the image
    face_locations = face_recognition.face_locations(image)



    check = os.listdir(cropimages_save)  # dir is your directory path
    already_prsntimg = len(check)

    a = 1+already_prsntimg
    for face_location in face_locations:
    # Print the location of each face in this image
        top, right, bottom, left = face_location
        # print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))

         # You can access the actual face itself like this:
        face_image = image[top:bottom, left:right]
        pil_image = Image.fromarray(face_image)
         # pil_image.show()
        pil_image.save(cropimages_save + "/" + str(a) + ".jpg")
        a = a + 1
    print("--> Images saved successfully...!!!")
        # a=a+len(face_locations)
    return

1 个答案:

答案 0 :(得分:0)

您可以使用os.chdir('output')将工作目录更改为输出目录,然后编写图像。然后返回原始目录以选择随机图像使用os.chdir('../')