Doc*_*ocC 14 java opencv tesseract anpr tess4j
我正在尝试开发用于车牌识别的简单PC应用程序(Java + OpenCV + Tess4j).图像并不是很好(进一步说它们会很好).我想为tesseract预处理图像,而我却坚持检测车牌(矩形检测).
我的步骤:
1)源图像
Mat img = new Mat();
img = Imgcodecs.imread("sample_photo.jpg");
Imgcodecs.imwrite("preprocess/True_Image.png", img);
Run Code Online (Sandbox Code Playgroud)
2)灰度
Mat imgGray = new Mat();
Imgproc.cvtColor(img, imgGray, Imgproc.COLOR_BGR2GRAY);
Imgcodecs.imwrite("preprocess/Gray.png", imgGray);
Run Code Online (Sandbox Code Playgroud)
3)高斯模糊
Mat imgGaussianBlur = new Mat();
Imgproc.GaussianBlur(imgGray,imgGaussianBlur,new Size(3, 3),0);
Imgcodecs.imwrite("preprocess/gaussian_blur.png", imgGaussianBlur);
Run Code Online (Sandbox Code Playgroud)
4)自适应阈值
Mat imgAdaptiveThreshold = new Mat();
Imgproc.adaptiveThreshold(imgGaussianBlur, imgAdaptiveThreshold, 255, CV_ADAPTIVE_THRESH_MEAN_C ,CV_THRESH_BINARY, 99, 4);
Imgcodecs.imwrite("preprocess/adaptive_threshold.png", imgAdaptiveThreshold);
Run Code Online (Sandbox Code Playgroud)
这应该是第5步,即检测板区域(现在可能甚至没有偏斜).
我使用Paint从图像(第4步之后)开始需要区域,并得到:
然后我做了OCR(通过tesseract,tess4j):
File imageFile = new File("preprocess/adaptive_threshold_AFTER_PAINT.png");
ITesseract instance = new Tesseract();
instance.setLanguage("eng");
instance.setTessVariable("tessedit_char_whitelist", "acekopxyABCEHKMOPTXY0123456789");
String result = instance.doOCR(imageFile);
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
并得到(足够好?)结果 - "Y841ox EH"(几乎是真的)
如何在第4步后检测并裁剪板区?我是否需要在1-4步中进行一些更改(改进)?希望看到一些通过Java + OpenCV(而不是JavaCV)实现的示例.
提前致谢.
编辑(感谢@Abdul Fatir的回答)好吧,我为那些对这个问题感兴趣的人提供了工作(对于我至少)的代码示例(Netbeans + Java + OpenCV + Tess4j).代码不是最好的,但我只是为了学习.
http://pastebin.com/H46wuXWn(别忘了把tessdata文件夹放到你的项目文件夹中)
Abd*_*tir 12
以下是我建议您应该执行此任务的方法.
应用Sobel滤镜查找垂直边缘.
Sobel(gray, dst, -1, 1, 0)
minAreaRect每个轮廓.根据纵横比以及最小和最大区域选择矩形.adaptiveThreshold并应用OCR. a)步骤5之后的结果
b)步骤7之后的结果.绿色的是minAreaRects,红色的是满足以下标准的:宽高比范围(2,12)和面积范围(300,10000)
c)步骤9之后的结果.选择的矩形.标准:边缘密度> 0.5
编辑
对于边缘密度,我在上面的例子中所做的如下.
边缘密度=矩形中的白色像素数/总数.矩形中的像素数
注意:您也可以使用步骤5中的二进制图像来计算边缘密度,而不是通过步骤1到3.
| 归档时间: |
|
| 查看次数: |
14425 次 |
| 最近记录: |