проблема при сохранении изображений с помощью cv2.imwrite - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в Python

, поэтому я создал код, который может сделать изображения окклюзированными

Путь к непокрытым изображениям: ./photos/img1.jpg ./photos/img2.jpg

и я хочу сохранить скрытое изображение в: ./photos/result/img1_01.jpg ./photos/img2_02.jpg

, и это мой код:

import face_recognition
import cv2
import glob
import os

#generate new folder
def gen_folder(foldername):
    try:
        os.mkdir(foldername)
        print('Directory',foldername,'successfully created')
    except FileExistsError:
        print('Directory',foldername,'already exist')

#generate bounding boxes
def gen_bbox(image, face_location, level):
    top, right, bottom, left = face_location

    if level == '100':
        cv2.rectangle(image, (left,top), (right,bottom), (0,0,0), cv2.FILLED)
    if level == '75':
        cv2.rectangle(image, (left,top), (right-100,bottom), (0,0,0), cv2.FILLED)
    if level == '50':
        cv2.rectangle(image, (left,top), (right-150,bottom), (0,0,0), cv2.FILLED)
    if level == '25':
        cv2.rectangle(image, (left,top), (right-200,bottom), (0,0,0), cv2.FILLED)

#save images
def save_image(image, level):
    count = 0
    gen_folder(level)
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

    for s_image in glob.glob('*.jpg'):
        cv2.imwrite('./{}/result_{}.jpg'.format(level, count), image_rgb)
        count += 1

#main function  
def main(dirname):
    #get folder to process
    os.chdir(dirname)
    for file in glob.glob('*.jpg'):
        #load image and find face locations
        image = face_recognition.load_image_file(file)
        face_locations = face_recognition.face_locations(image, number_of_times_to_upsample = 0, model='cnn')

        #create bounding box from face location
        for face_location in face_locations:
            top, right, bottom, left = face_location

            print('face located in TOP:{}, RIGHT:{}, BOTTOM:{}, LEFT:{}'.format(top, right, bottom, left))


            gen_bbox(image,face_location, '100') 

        save_image(image, '100')

if __name__ == '__main__':
main('photos')

, но когда я запускаю код, результат выглядит следующим образомэто:

./photos/100/img1_1.jpg и ./photos/100/img1_2.jpg

результат, который я хочу получить:

./photos/100/img1_1.jpg и ./photos/100/img2_2.jpg

поэтому мой кодпросто обрабатывая одну фотографию из двух фотографий, которые у меня есть

Кто-нибудь может мне помочь? извините, если это глупый вопрос, любой ответ будет принята с благодарностью. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...