Browse Source

Merge pull request #2 from brucexiaok/master

添加配置文件和detect测试用例
pull/1/MERGE
brucexiaok GitHub 7 years ago
parent
commit
d71a07cf03
5 changed files with 86 additions and 0 deletions
  1. +7
    -0
      README.md
  2. +15
    -0
      config.json
  3. +6
    -0
      hyperlpr/config.py
  4. +0
    -0
      hyperlpr/plateStructure.py
  5. +58
    -0
      hyperlpr_test/detect_test.py

+ 7
- 0
README.md View File

@@ -65,8 +65,15 @@ image,res = pp.SimpleRecognizePlate(image)

### 测试样例

hyperlpr_test文件夹下

![image](./cache/demo1.png)
![image](./cache/demo2.png)
![image](./cache/demo3.png)

![image](./demo_images/test.png)


### 数据分享

车牌识别框架开发时使用的数据并不是很多,有意着可以为我们提供相关车牌数据。联系邮箱 455501914@qq.com。


+ 15
- 0
config.json View File

@@ -0,0 +1,15 @@
{
"global":{
"debug":true
},
"log":{
},
"detect":{
},
"recognize":{
},
"detectTest":{
"detectPath":"/Users/universe/Documents/work/data/Plate/boundingbox",
"outputPath":"/Users/universe/ProgramUniverse/python/Forked/HyperLPR/out/detect_test"
}
}

+ 6
- 0
hyperlpr/config.py View File

@@ -0,0 +1,6 @@
import json



with open("/Users/universe/ProgramUniverse/python/Forked/HyperLPR/config.json") as f:
configuration = json.load(f)

+ 0
- 0
hyperlpr/plateStructure.py View File


+ 58
- 0
hyperlpr_test/detect_test.py View File

@@ -0,0 +1,58 @@
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)

Loading…
Cancel
Save