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
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
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
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