Exemple #1
0
def img_box(im, target_dir):
    width = im.size[0]
    height = im.size[1]
    x = width * 0.67
    w = width * 0.98
    y = height * 0.47
    h = height * 0.56
    traget_path = box.box(x, y, w, h, im, target_dir, field)
    return traget_path
Exemple #2
0
def img_box(im, target_dir):
    width = im.size[0]
    height = im.size[1]
    x = width * 0.78
    w = width * 0.99
    y = height * 0.53
    h = height * 0.62
    traget_path = box.box(x, y, w, h, im, target_dir, field)
    return traget_path
Exemple #3
0
def img_box(im,target_dir):
    width = im.size[0]
    height = im.size[1]
    #x =0
    #y =height*0.26
    #w = width*0.12
    #h = height*0.32
    #filename = "cardno_pre"
    #traget_path = box.box(x,y,w,h,im,target_dir,filename)
    #box.box_step(traget_path,20,30)
    x = width * 0.14
    w = width * 0.47
    y = height * 0.26
    h = height * 0.34
    traget_path = box.box(x, y, w, h, im, target_dir, field)
    return  traget_path
Exemple #4
0
def make_dk_img(rects,file_path_box_dir,file_name,file_dir_img_root,is_src):

    file_src = os.path.join(file_dir_img_root,file_name,"005_line_"+file_name+".jpg")
    dir_num="3"
    if is_src:
        file_src = os.path.join(file_dir_img_root, file_name+".jpg")
        dir_num = "2"
    im = Image.open(file_src)
    if rects:
        dk_dir = os.path.join(file_path_box_dir,dir_num)
        if not os.path.exists(dk_dir):
            os.makedirs(dk_dir)
            cv2_img = cv2.imread(file_src)
            for rect in rects:
                #print("===", rect)
                #rect = json.load(rect)
                #print("==json=",rect)
                class_name = rect.get("class_name")
                class_array = class_name.split("_")
                xmin = rect.get("xmin")
                xmax = rect.get("xmax")
                ymin = rect.get("ymin")
                ymax = rect.get("ymax")
                box_width = xmax - xmin
                box_height = ymax - ymin
                forward = class_array[2]
                if box_height > box_width and forward!='1' and forward!="3":
                    forward="1"
                if box_width>box_height and forward!="0" and forward!="2":
                    forward="0"
                angle = 0
                if forward == '1':
                    angle = 90
                if forward == '2':
                    angle = 180
                if forward == '3':
                    angle = 270








                field = class_array[1]
                if field == "idcard":
                    field = "cardno"
                if field == "engine":
                    field = "engineno"
                if field == "vin":
                    field = "vinno"

                if forward == '0':
                    xmax +=int((xmax-xmin)*0.04)
                if forward == '1':
                    ymax +=int((ymax-ymin)*0.04)
                if forward == '2':
                    xmin -= int((xmax-xmin)*0.04)
                if forward == '3':
                    ymin -= int((ymax - ymin) * 0.04)

                color = (0, 255, 0)

                cv2_img = cv2.rectangle(cv2_img, (xmin, ymin), (xmax, ymax), color, 2)
                cv2_img = cv2.putText(cv2_img, class_name, (xmax, ymin - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.6, color, 2)

                target_path = box.box(xmin,ymin,xmax,ymax,im,dk_dir,field)

                if angle != 0:
                    img = cv2.imread(target_path)
                    #cv2.imwrite(target_path+".src.jpg",img)
                    img = box.rotate_about_center(img,angle)
                    cv2.imwrite(target_path,img)
                    #cv2.imwrite(target_path + ".rotate.jpg", img)
                    #box.handleBorderImage(target_path)
                img = Image.open(target_path)
                region_width = img.size[0]
                region_height = img.size[1]
                new_region_width = region_width
                if field == "cardno":
                    new_region_width = 460
                if field == "engineno":
                    new_region_width = 300
                if field == "vinno":
                    new_region_width = 460
                if field == "price":
                    new_region_width = 400
                region_height = region_height * new_region_width // region_width
                region_width = new_region_width
                img = img.resize((region_width, region_height), Image.ANTIALIAS)
                if img.mode=="P":
                    target_path_png= target_path+".png"
                    img.save(target_path_png)
                    shutil.copy(target_path_png,target_path)
                else:
                    img.save(target_path)
            cv2.imwrite(file_src + ".rect.jpg", cv2_img)
    pass