python,一个文件下的所有图片,图片含有label,和框的信息,得到最大的脸,分成label文件夹的而形式保存图片

###一个文件下所有图片,生成对应label 文件夹,并把图片放到对应label文件中,图片名字有标签信息
def new_label_img():
    path = "/nfs-data/xingwg/data/cow/shi_cow_head/"
    count = 0
    for i,one_img in enumerate(os.listdir("./shi_cow_head")): #第一张图和所有文件遍历
        one = one_img.split("_")    
        label = one[1]
        save_path = "/nfs-data/xingwg/data/cow/split_file_head/"+label
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        count = count+1
        shutil.copy(path+one_img,save_path)
        print count
#在一个文件夹下所有图片,保留最大面积的框       
import shutil
import numpy as np
def copy_max_img():
    for i,one_img in enumerate(os.listdir("./results/head")): #第一张图和所有文件遍历
        one = one_img.split("-")
        im = one_img
        length = len(os.listdir("./results/head"))  # 
        max = 0
        for name in os.listdir("./results/head"):#[int(i)+1:]
            img_name = name.split("-") #['day_16137_000014.jpg', 'head', '430_1134_3363_4108.jpg']
            # print (img_name)
            path = "/nfs-data/xingwg/data/cow/shi_cow_head"
            
            if str(one[0])==str(img_name[0]) and str(one[1])==str(img_name[1]):
                print(one_img)
                print(name)
                box=img_name[2].split("_")
    
                w=abs(int(box[2])-int(box[0]))
                h =abs(int(box[3].split(".")[0])-int(box[1]))
                ################################
                box=one[2].split("_")
            
                w2=abs(int(box[2])-int(box[0]))
                h2 =abs(int(box[3].split(".")[0])-int(box[1]))
                
                
                a1 =w*h
                a2 = w2*h2
                if a1>a2 and a1>max:
                    im = name
                    max = a1
                print (a1,a2)
                continue
        shutil.copy("./results/head/"+im,path)
发布了98 篇原创文章 · 获赞 141 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/m0_37192554/article/details/103199148