java– 清理图像以帮助在Android上进行tesseract

java– 清理图像以帮助在Android上进行tesseract,第1张

概述我正试图从数独板中提取数字.在检测到电路板,它的角落和变形后,我留下了一个只有电路板的漂亮的排列图像.现在我正在尝试使用Tesseractandroid实现,Tess-Two来识别数字.我将图像分成9个部分currentCell=undistortedThreshed.submat(rect);其中rect是围绕图像的矩形.现在到

我正试图从数独板中提取数字.在检测到电路板,它的角落和变形后,我留下了一个只有电路板的漂亮的排列图像.
现在我正在尝试使用Tesseract android实现,Tess-Two来识别数字.
我将图像分成9个部分

currentCell = undistortedThreshed.submat(rect);

其中rect是围绕图像的矩形.

现在到数字识别.

有些数字,如4,它可以完美识别.一些人,大多数是6,7,8被认为是0或什么也没有.

我想通过清理currentCell图像尽可能多地帮助tesseract.此刻它看起来像这样
. (也尝试没有倒置阈值).我想摆脱白线(数独线).
我尝试过这样的事(取自here)

imgproc.Canny(currentCell, currentCell, 80, 90);Mat lines = new Mat();int threshold = 50;int minlinesize = 5;int lineGap = 20;imgproc.@R_763_3017@(currentCell, lines, 1, Math.PI / 180,        threshold, minlinesize, lineGap);for (int x = 0; x < lines.cols() && x < 1; x++) {    double[] vec = lines.get(0, x);    double x1 = vec[0], y1 = vec[1], x2 = vec[2], y2 = vec[3];    Point start = new Point(x1, y1);    Point end = new Point(x2, y2);    Core.line(currentCell, start, end, new Scalar(255), 10);}

但它没有画任何东西,我试着弄乱线条的宽度和颜色,但仍然没有.试图在大图像上绘制线条,在未刷新的图像上,没有任何作用..

有什么建议?

编辑

由于某种原因,它似乎找不到任何线条.
这是将图像应用于canny之后的图像,但houghlines没有检测到任何行.尝试使用不同的houghlines和@R_763_3017@,如OpenCV文档中所示,但没有任何作用……
这些都很明显……我做错了什么?
谢谢!

解决方法:

我最终做了一些不同的事情.

我使用findContours来获得最大的轮廓,即数字.

通过使用boundingRect得到它的边界框.

使用submat和voilla提取.我只得到了数字.

不幸的是,它似乎没有任何区别.
Tesseract仍然无法正确识别数字.有时它没有给出结果,有时,在扩大数字之后它将6识别为0.
但这是另一个问题的问题.

总结

以上是内存溢出为你收集整理的java – 清理图像以帮助在Android上进行tesseract全部内容,希望文章能够帮你解决java – 清理图像以帮助在Android上进行tesseract所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存