-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrop_image.py
More file actions
51 lines (41 loc) · 1.45 KB
/
crop_image.py
File metadata and controls
51 lines (41 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import json
import os
import cv2
import copy
import numpy as np
from tools.infer.utility import draw_ocr_box_txt, get_rotate_crop_image
def print_draw_crop_rec_res( img_crop_list, img_name):
bbox_num = len(img_crop_list)
for bno in range(bbox_num):
crop_name=img_name+'_'+str(bno)+'.jpg'
crop_name_w = "./train/img_crop/{}".format(crop_name)
cv2.imwrite(crop_name_w, img_crop_list[bno])
crop_label.write("{0}\t{1}\n".format(crop_name, text[bno]))
crop_label = open('./train/crop_label.txt','w')
with open('./train/train_label.txt','r') as file_text:
img_files=file_text.readlines()
count=0
for img_file in img_files:
content = json.loads(img_file.split('\t')[1].strip())
dt_boxes=[]
text=[]
for i in content:
content = i['points']
if i['transcription'] == "###":
count+=1
continue
bb = np.array(i['points'],dtype=np.float32)
dt_boxes.append(bb)
text.append(i['transcription'])
image_file = './train/vietnamese/train_images/' +img_file.split('\t')[0]
img = cv2.imread(image_file)
ori_im=img.copy()
img_crop_list=[]
for bno in range(len(dt_boxes)):
tmp_box = copy.deepcopy(dt_boxes[bno])
img_crop = get_rotate_crop_image(ori_im, tmp_box)
img_crop_list.append(img_crop)
img_name = img_file.split('\t')[0].split('.')[0]
if not os.path.exists('./train/img_crop'):
os.mkdir('./train/img_crop')
print_draw_crop_rec_res(img_crop_list,img_name)