课题用到了车牌识别,因为C++不会,听说上手比较困难,干脆用了Python做一个原型,编程实现比较快。但是,问题来了,图像处理方面C++是完美工具,大多API、资料都是C++编写的,python的真的是太少了。
终于,还是找到了一个,调用很简单,实现结果也很不错。下面上资料。
-----------------------------------------------------------------------------------------------------------------
一、车辆识别代码下载路径(来源:github)
https://github.com/zeusees/HyperLPR
二、调用方式
1、调用pipline版本
在程序最外层新建一个.py文件
recognize_plate.py内容如下:
from program_version2.LPR_cite.hyperlpr import pipline as pp import cv2 def recognize_plate_my(image): ''' 调用车牌检测方法识别车牌,写此方法,供main函数调用 :param image: 传入的图片,只需要识别出车牌即可 :return: ''' # image = cv2.imread("包含车牌图像的路径") # image=cv2.imread(filename) image, res = pp.SimpleRecognizePlate(image) print(res) return res
在其他程序中直接调用该方法,传入包含车牌的图像即可。
2、调用e2e版本
只需要将recognize_plate.py文件中的内容改为下面内容,其实只有调用方法变化了而已。
from program_version2.LPR_cite.hyperlpr import pipline as pp import cv2 def recognize_plate_my(image): ''' 调用车牌检测方法识别车牌,写此方法,供main函数调用 :param image: 传入的图片,只需要识别出车牌即可 :return: ''' # image = cv2.imread("包含车牌图像的路径") # image=cv2.imread(filename) image, res = pp.SimpleRecognizePlateByE2E(image) print(res) return res注意:此处res返回的是一个长度为3的列表,并且车牌号好像去掉了数字,不知道为啥,我又在pp. SimpleRecognizePlateByE2E中稍作修改,只返回带汉字的车牌识别结果,完美解决问题。
三、与该接口相关的技术资料(若不只是应用,想要学习如何实现的技术点,可以看看)
太多资料还没有费精力去找,时间有限,先记下来,课题结束后再认真学习,同时帮助需要的小伙伴。