Я хочу обрезать свои изображения подпапок и сохранить в другой каталог с подпапками - PullRequest
0 голосов
/ 04 ноября 2019

Я учусь в области кодирования. Я должен обрезать некоторые изображения, которые сохраняются в подпапках. Изображения сохраняются следующим образом: оригинал (имя папки) - штрих-код (подпапка) - 1 (подпапка), 2 (подпапки) - o1.jpg ....

eg. /home/AA/Data_processing/crop image/original/12345/1-images
eg. /home/AA/Data_processing/crop image/original/12345/2-images 

Я хочу обрезать егоиспользуя im.crop. Когда я пытался запустить некоторые коды, он считывает мои файлы, также сохранение пути создает каталог сохранения, но я не получаю обрезанные изображения в пути сохранения при установке.

Любая помощь будет принята с благодарностью. Спасибо


from PIL import Image
import os.path, sys
import os
import cv2


img_path ="./original/" # folder path
save_root_path = "./crop"
folders_list = sorted(os.listdir(img_path))
#dirs = os.listdir(path)

# checking folder 
def filecheck(path):
    if not os.path.exists(path):
        try:
            os.makedirs(path)
            print('create'+path)
        except OSError as e:
            if e.errorno != e.errno.EEXIST: 
                raise
for folder_list in folders_list: 
    folder_path = os.path.join(img_path,folder_list)
    barcodes_list = sorted(os.listdir(folder_path))


# checking barcode folder 
    for barcode_list in barcodes_list: 
        barcode_path = os.path.join(folder_path,barcode_list)
        imgs_list = sorted(os.listdir(barcode_path))
        save_path = os.path.join(os.path.join(save_root_path , folder_list) , barcode_list)
        if os.path.exists(save_path):
            print(save_path + " exists")
            continue
        filecheck(save_path)
        for img_list in imgs_list:
            img = cv2.imread(os.path.join(barcode_path,img_list))
            print(os.path.join(barcode_path,img_list))                        

# cropping images                         
def crop():
    for item in img_path:
        fullpath =os.path.join(os.path.join(save_root_path , folder_list) , barcode_list) 
        if os.path.isfile(fullpath):
            im = Image.open(fullpath)
            imCrop = im.crop((474, 14, 3888, 2108)) # I want ro crop in this way 

            cv2.imwrite(save_path+'/'+img_list.split('.')[0]+'.jpg', quality=100)



#print(os.path.join(barcode_path,img_list))
#print(crop())`
...