wutianXai 发表于 2017-7-27 10:52

使用opencv做图像定位,错误率高如何解决?

本帖最后由 wutianXai 于 2017-7-27 10:56 编辑

1.代码
def findPlateNumberRegion(img):
   region = []
   ret, binary = cv.threshold(img,127,255,cv.THRESH_BINARY)
   contours = cv.findContours(binary, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
   c = sorted(contours[1], key=cv.contourArea, reverse=True)[0]
   rect = cv.minAreaRect(c)
   box = np.int0(cv.boxPoints(rect))
   return box
img = cv.imread("e:\\test8.jpg")
GrayImage=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
x = cv.Sobel(median, cv.CV_64F, 1, 0)
y = cv.Sobel(median, cv.CV_64F, 0, 1)

absX = cv.convertScaleAbs(x)# 转回uint8
absY = cv.convertScaleAbs(y)
dst = cv.addWeighted(absX, 0.5, absY, 0.5, 0)
retval, result1 = cv.threshold(dst, 70, 255, cv.THRESH_BINARY)
im_at_mean = cv.adaptiveThreshold(result1, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, 5, 10)

kernel = cv.getStructuringElement(cv.MORPH_RECT,(13, 10))
dilated = cv.dilate(im_at_mean, kernel)
eroded = cv.erode(im_at_mean, kernel)
result = cv.absdiff(dilated, eroded)
cv.imshow("result", result)
region=findPlateNumberRegion(result)
cv.drawContours(img, , -1, (0, 255, 0), 3)
cv.imshow("Image", img)
2.效果

图2.1 效果不好

图2.2 效果好
3.问题
想问下有没啥方法可以提高识别率或者优化思路?
用机器学习定位车牌效果好么?可以相互交流下。
4.备注
第一次发帖,有点尴尬不知道乍描述··


qiangcxq 发表于 2017-7-27 11:20

你可以找找人脸设别的试试效果

553429363 发表于 2017-7-27 11:38

我做过opencv数字识别 字母识别 但没用过机器学习的思路 基本上就是K邻近算法 你这个车牌的字母数字基本都是规范的 制式的应该把样本库丰富一点 识别度会高很多吧

Binean 发表于 2017-7-27 12:10

推荐看开源项目easypr,里面做的效果不错。

Binean 发表于 2017-7-27 12:10

推荐看开源项目easypr,里面做的效果不错。

wutianXai 发表于 2017-7-27 13:02

Binean 发表于 2017-7-27 12:10
推荐看开源项目easypr,里面做的效果不错。

谢谢,我也正在研究这个项目。。

wutianXai 发表于 2017-7-27 13:07

553429363 发表于 2017-7-27 11:38
我做过opencv数字识别 字母识别 但没用过机器学习的思路 基本上就是K邻近算法 你这个车牌的字母数字基本都 ...

谢谢解答,现在还没到识别,还在做定位。
问题是不同环境下的图片定位不准{:1_906:}

553429363 发表于 2017-7-27 13:43

确实定位是挺麻烦的 关键是车辆高度 纵向上 还有横向的距离不统一 靠位置是不用想了

553429363 发表于 2017-7-27 13:44

wutianXai 发表于 2017-7-27 13:07
谢谢解答,现在还没到识别,还在做定位。
问题是不同环境下的图片定位不准

我感觉要在图像上花功夫

usg1024 发表于 2017-11-19 17:01

楼主,我们最近也在研究基于openv的汽车号码牌识别和追踪,也是用的python。有空请教请教
页: [1]
查看完整版本: 使用opencv做图像定位,错误率高如何解决?