Showing
5 changed files
with
236 additions
and
0 deletions
annotation_convert/UFPR_ALPR_cvt/cropping.py
0 → 100644
| 1 | +import cv2 | ||
| 2 | +import os | ||
| 3 | +import sys | ||
| 4 | +import re | ||
| 5 | +import glob | ||
| 6 | + | ||
| 7 | +path = sys.argv[1] | ||
| 8 | +save_path = sys.argv[2] | ||
| 9 | + | ||
| 10 | +def cropFolerlevel(path, save_path): | ||
| 11 | + img_list = [file for file in glob.glob(path+'\\*.png')] | ||
| 12 | + txt_list = [file for file in glob.glob(path+'\\*.txt')] | ||
| 13 | + | ||
| 14 | + for i in range(img_list.__len__()): | ||
| 15 | + txt = open(txt_list[i]) | ||
| 16 | + img = cv2.imread(img_list[i]) | ||
| 17 | + name = img_list[i].split('\\')[-1] | ||
| 18 | + | ||
| 19 | + p = list(map(int, re.split(' |\n', txt.readlines()[7])[1:5])) | ||
| 20 | + crop_img = img[p[1]:p[1]+p[3], p[0]:p[0]+p[2]] | ||
| 21 | + cv2.imwrite(save_path+'\\'+name , crop_img) | ||
| 22 | + | ||
| 23 | +def recursive(path, save_path): | ||
| 24 | + files = os.listdir(path) | ||
| 25 | + for file in files: | ||
| 26 | + fullname = os.path.join(path, file) | ||
| 27 | + savename = os.path.join(save_path, file) | ||
| 28 | + if os.path.isdir(fullname): | ||
| 29 | + recursive(fullname, savename) | ||
| 30 | + if not os.path.isdir(save_path): | ||
| 31 | + os.makedirs(save_path) | ||
| 32 | + cropFolerlevel(path, save_path) | ||
| 33 | + | ||
| 34 | +recursive(path, save_path) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
annotation_convert/UFPR_ALPR_cvt/text.py
0 → 100644
| 1 | +import cv2 | ||
| 2 | +import os | ||
| 3 | +import sys | ||
| 4 | +import glob | ||
| 5 | +import re | ||
| 6 | + | ||
| 7 | +path = sys.argv[1] | ||
| 8 | +save_path = sys.argv[2] | ||
| 9 | +img_list = [cv2.imread(file) for file in glob.glob(path + '\\*.png')] | ||
| 10 | +txt_list = [file for file in glob.glob(path + '\\*.txt')] | ||
| 11 | + | ||
| 12 | +print(cv2.__version__) | ||
| 13 | +print(txt_list) | ||
| 14 | +print(img_list[1]) | ||
| 15 | +txt = open(txt_list[1]) | ||
| 16 | +img = img_list[1] | ||
| 17 | +p = list(map(int, re.split(' |\n', txt.readlines()[7])[1:5])) | ||
| 18 | +print(p) | ||
| 19 | +cv2.imshow('hello', img) | ||
| 20 | +cv2.waitKey(0) | ||
| 21 | +corp_img = img[p[1]:p[1]+p[3], p[0]:p[0]+p[2]] | ||
| 22 | +cv2.imshow('hello', corp_img) | ||
| 23 | +cv2.imwrite(save_path+'\\result.png', corp_img) |
annotation_convert/convert csv (1).py
0 → 100644
| 1 | +import os | ||
| 2 | +import csv | ||
| 3 | +import xlsxwriter | ||
| 4 | +from PIL import Image | ||
| 5 | +import re | ||
| 6 | + | ||
| 7 | +# make empty csv file | ||
| 8 | +workbook = xlsxwriter.Workbook("dataset.xlsx") | ||
| 9 | +worksheet = workbook.add_worksheet("sheet1") | ||
| 10 | + | ||
| 11 | +# resize col | ||
| 12 | +worksheet.set_column("A:A", 60) | ||
| 13 | + | ||
| 14 | +# get current directory path | ||
| 15 | +directory = os.getcwd() | ||
| 16 | + | ||
| 17 | +img_file_name = [] | ||
| 18 | +text_file_name = [] | ||
| 19 | +for filename in os.listdir(directory): | ||
| 20 | + if filename.endswith(".png"): | ||
| 21 | + path = os.path.join(directory, filename) | ||
| 22 | + img_file_name.append(path) | ||
| 23 | + | ||
| 24 | + elif filename.endswith(".txt"): | ||
| 25 | + path = os.path.join(directory, filename) | ||
| 26 | + text_file_name.append(path) | ||
| 27 | + | ||
| 28 | +print(img_file_name) # for check | ||
| 29 | +print(text_file_name) # for check | ||
| 30 | + | ||
| 31 | +# text annotation | ||
| 32 | +text = [] | ||
| 33 | +for t in text_file_name: | ||
| 34 | + plate = [] | ||
| 35 | + with open(t, "r") as f: | ||
| 36 | + for line in f: | ||
| 37 | + if line[:5] == "plate": | ||
| 38 | + plate.append(line.strip("plate: ").strip()) | ||
| 39 | + | ||
| 40 | + elif line[:14] == "position_plate": | ||
| 41 | + numbers = list(map(int, line.strip("position_plate: ").strip().split())) | ||
| 42 | + plate.append(numbers) | ||
| 43 | + | ||
| 44 | + elif "char" in line: | ||
| 45 | + numbers = re.findall("\d+", line[8:]) | ||
| 46 | + plate.append(list(map(int, numbers))) | ||
| 47 | + text.append(plate) | ||
| 48 | +print(text) # for check | ||
| 49 | + | ||
| 50 | +################################################################################# | ||
| 51 | +#################### error : 마지막 image, text에 대해서만 됨 #################### | ||
| 52 | +################################################################################# | ||
| 53 | +# insert to csv | ||
| 54 | +idx = 0 | ||
| 55 | +k = 0 | ||
| 56 | +for filename in img_file_name: | ||
| 57 | + # col A, B | ||
| 58 | + for i in range(k, k + len(text[idx][0]) - 1): | ||
| 59 | + A = "A" + str(i + 1) | ||
| 60 | + path = os.path.join(directory, filename) | ||
| 61 | + worksheet.write(A, path) | ||
| 62 | + | ||
| 63 | + B = "B" + str(i + 1) | ||
| 64 | + worksheet.write(B, text[idx][0]) | ||
| 65 | + | ||
| 66 | + k += len(text[idx][0]) - 1 | ||
| 67 | + idx += 1 | ||
| 68 | + | ||
| 69 | +idx = 0 | ||
| 70 | +k = 0 | ||
| 71 | +for filename in text_file_name: | ||
| 72 | + # col C, D, E, F : x1, y1, x2, y2 | ||
| 73 | + j = 0 | ||
| 74 | + for i in range(k, k + len(text[0]) - 2): | ||
| 75 | + C = "C" + str(i + 1) | ||
| 76 | + worksheet.write(C, text[idx][j + 2][0]) | ||
| 77 | + | ||
| 78 | + D = "D" + str(i + 1) | ||
| 79 | + worksheet.write(D, text[idx][j + 2][1]) | ||
| 80 | + | ||
| 81 | + E = "E" + str(i + 1) | ||
| 82 | + worksheet.write(E, text[idx][j + 2][0] + text[idx][j + 2][2]) | ||
| 83 | + | ||
| 84 | + F = "F" + str(i + 1) | ||
| 85 | + worksheet.write(F, text[idx][j + 2][1] + text[idx][j + 2][3]) | ||
| 86 | + | ||
| 87 | + j += 1 | ||
| 88 | + k += len(text[0]) - 2 | ||
| 89 | + idx += 1 | ||
| 90 | + | ||
| 91 | +workbook.close() |
annotation_convert/convert csv.py
0 → 100644
| 1 | +import os | ||
| 2 | +import csv | ||
| 3 | +import xlsxwriter | ||
| 4 | +from PIL import Image | ||
| 5 | +import re | ||
| 6 | + | ||
| 7 | +# make empty csv file | ||
| 8 | +workbook = xlsxwriter.Workbook("dataset.xlsx") | ||
| 9 | +worksheet = workbook.add_worksheet("sheet1") | ||
| 10 | + | ||
| 11 | +# resize col | ||
| 12 | +worksheet.set_column("A:A", 60) | ||
| 13 | + | ||
| 14 | +# get current directory path | ||
| 15 | +directory = os.getcwd() | ||
| 16 | + | ||
| 17 | +img_file_name = [] | ||
| 18 | +text_file_name = [] | ||
| 19 | +for filename in os.listdir(directory): | ||
| 20 | + if filename.endswith(".png"): | ||
| 21 | + path = os.path.join(directory, filename) | ||
| 22 | + img_file_name.append(path) | ||
| 23 | + | ||
| 24 | + elif filename.endswith(".txt"): | ||
| 25 | + path = os.path.join(directory, filename) | ||
| 26 | + text_file_name.append(path) | ||
| 27 | + | ||
| 28 | +print(img_file_name) # for check | ||
| 29 | +print(text_file_name) # for check | ||
| 30 | + | ||
| 31 | +# text annotation | ||
| 32 | +text = [] | ||
| 33 | +for t in text_file_name: | ||
| 34 | + plate = [] | ||
| 35 | + with open(t, "r") as f: | ||
| 36 | + for line in f: | ||
| 37 | + if line[:5] == "plate": | ||
| 38 | + plate.append(line.strip("plate: ").strip()) | ||
| 39 | + | ||
| 40 | + elif line[:14] == "position_plate": | ||
| 41 | + numbers = list(map(int, line.strip("position_plate: ").strip().split())) | ||
| 42 | + plate.append(numbers) | ||
| 43 | + | ||
| 44 | + elif "char" in line: | ||
| 45 | + numbers = re.findall("\d+", line[8:]) | ||
| 46 | + plate.append(list(map(int, numbers))) | ||
| 47 | + text.append(plate) | ||
| 48 | +print(text) # for check | ||
| 49 | + | ||
| 50 | +################################################################################# | ||
| 51 | +#################### error : 마지막 image, text에 대해서만 됨 #################### | ||
| 52 | +################################################################################# | ||
| 53 | +# insert to csv | ||
| 54 | +idx = 0 | ||
| 55 | +# for filename in os.listdir(directory): | ||
| 56 | +for filename in img_file_name: | ||
| 57 | + # if filename.endswith(".png"): | ||
| 58 | + # col A, B | ||
| 59 | + for i in range(len(text[idx][0]) - 1): | ||
| 60 | + A = "A" + str(i + 1) | ||
| 61 | + path = os.path.join(directory, filename) | ||
| 62 | + worksheet.write(A, path) | ||
| 63 | + | ||
| 64 | + B = "B" + str(i + 1) | ||
| 65 | + worksheet.write(B, text[idx][0]) | ||
| 66 | + | ||
| 67 | + idx += 1 | ||
| 68 | + | ||
| 69 | + | ||
| 70 | +for filename in text_file_name: | ||
| 71 | + # if filename.endswith(".txt"): | ||
| 72 | + # col C, D, E, F : x1, y1, x2, y2 | ||
| 73 | + for i in range(len(text[0]) - 2): | ||
| 74 | + C = "C" + str(i + 1) | ||
| 75 | + worksheet.write(C, text[idx][i + 2][0]) | ||
| 76 | + | ||
| 77 | + D = "D" + str(i + 1) | ||
| 78 | + worksheet.write(D, text[idx][i + 2][1]) | ||
| 79 | + | ||
| 80 | + E = "E" + str(i + 1) | ||
| 81 | + worksheet.write(E, text[idx][i + 2][0] + text[idx][i + 2][2]) | ||
| 82 | + | ||
| 83 | + F = "F" + str(i + 1) | ||
| 84 | + worksheet.write(F, text[idx][i + 2][1] + text[idx][i + 2][3]) | ||
| 85 | + | ||
| 86 | + idx += 1 | ||
| 87 | + | ||
| 88 | +workbook.close() |
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment