|
- import os
- import hyperlpr.detect as hyperDetect
- import hyperlpr.config as hyperConfig
- import cv2
- import argparse
- import sys
-
- parser = argparse.ArgumentParser()
-
- debugInfo = hyperConfig.configuration["global"]["debug"]
- testPath = hyperConfig.configuration["detectTest"]["detectPath"]
- outPath = hyperConfig.configuration["detectTest"]["outputPath"]
-
- def drawBoundingBox(originImage,rect):
- cv2.rectangle(originImage, (int(rect[0]), int(rect[1])), (int(rect[0] + rect[2]), int(rect[1] + rect[3])), (0, 0, 255), 2,
- cv2.LINE_AA)
- return originImage
-
-
- #detect Plate in image batch
- def detectPlateBatchTest(filepath):
- for filename in os.listdir(filepath):
- if filename.endswith(".jpg") or filename.endswith(".png"):
- fileFullPath = os.path.join(filepath,filename)
- image = cv2.imread(fileFullPath)
- image_c = image.copy()
- Plates = hyperDetect.detectPlateRough(image_c, image_c.shape[0], top_bottom_padding_rate=0.1)
- pathName = filename.split('.')[0]
- if debugInfo:
- if len(Plates) != 0:
- if os.path.exists(os.path.join(outPath,pathName)) == False:
- os.mkdir(os.path.join(outPath,pathName))
- for i,plate in enumerate(Plates):
- rect = plate[1]
- region = plate[2]
- if debugInfo:
- cv2.imwrite(os.path.join(outPath,pathName,"region_"+str(i)+"_"+pathName+".png"),region)
- drawBoundingBox(image_c,rect)
- if debugInfo:
- cv2.imwrite(os.path.join(outPath,pathName,"out_"+pathName+".png"),image_c)
-
-
- def main(args):
- if args.type == 'batch':
- detectPlateBatchTest(testPath)
- else:
- print "type: "+args.type+" not found!\n"
- print parser.print_help()
-
-
- def parse_arguments(argv):
- parser.add_argument('--type',type=str,help='detect Plate type{batch},default is batch',default='batch')
- return parser.parse_args(argv)
-
- if __name__ == "__main__":
- main(parse_arguments(sys.argv[1:]))
-
- #detectPlateBatchTest(testPath)
|