import cv2
import os
import numpy as np
def get_images(test_data_path):
files = []
exts = ['jpg', 'png', 'jpeg', 'JPG']
for parent, dirnames, filenames in os.walk(test_data_path):
for filename in filenames:
for ext in exts:
if filename.endswith(ext):
files.append(os.path.join(parent, filename))
break
print('Find {} images'.format(len(files)))
return files
def drawbbox(lablePath, ImgPath, savePath):
if not os.path.exists(savePath):
os.makedirs(savePath)
filenames = get_images(ImgPath)
for img in filenames:
print('process : {}'.format(img))
txt = os.path.join(lablePath, os.path.basename(img).replace(img[-3:],'txt'))
try:
im = cv2.imread(img)
except:
print("Error reading image {}!".format(img))
continue
with open(txt, 'r') as f:
allboxes = f.readlines()
for box in allboxes:
box = np.array(list(map(int, box.split())))
cv2.polylines(im, [box.astype(np.int32).reshape((-1, 1, 2))], True, color=(0, 255, 0),
thickness=2)
cv2.imwrite(os.path.join(savePath, os.path.basename(img)), im)
if __name__ == '__main__' :
labelPath = ''
ImgPath = '.\\AuthImg\\'
savaPath = '.\\bboxImage\\'
drawbbox(labelPath, ImgPath, savaPath)