Har*_*dik 17
这是您想要实现的完全相同的演示
https://github.com/Aniruddha-Tapas/Document-Scanner(具有自动检测功能)
https://github.com/jhansireddy/AndroidScannerDemo
Gre*_*rey 14
我假设您的问题是检测要扫描的对象.
模式匹配或特征检测等对象检测机制不会为您提供所需的结果,因为您不知道要扫描的对象到底是什么.
基本上你在图片中搜索一个矩形对象.
对此的基本方法可以如下:
在图像上运行canny边缘检测器.在执行此操作之前,它可能有助于模糊图像.物体的边缘应清晰可见.
现在你想做一个Hough变换来找到图片中的线条.
搜索角度约为90度的线条.问题是要找到合适的人选.也许使用最接近图片框架的线条就足够了.
找到相交点以定义对象的边缘.
至少这应该给你一个暗示进一步研究的地方.
作为此类应用程序的进一步步骤,您必须计算点的投影并对对象进行仿射变换.
我希望这有帮助.
写完所有这些后我发现了这篇文章.它应该对你有所帮助.
由于我的答案针对OpenCV,您必须使用OpenCV库.为此,您需要安装Android Native Development Kit(NDK).在OpenCV for Android页面上有一些关于如何在Android上使用OpenCV的好教程.
要记住的一件事是Java包装器的几乎每个函数都调用本机方法.这花费了很多时间.因此,在将结果返回到Java部分之前,您希望在本机代码中尽可能多地执行此操作.
小智 5
我知道我来不及回答,但它可能对某人有所帮助.
请尝试以下代码.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
path = new Path();
path.moveTo(x1, y1); // this should set the start point right
//path.lineTo(x1, y1); <-- this line should be drawn at the end of course,sorry
path.lineTo(x2, y2);
path.lineTo(x3, y3);
path.lineTo(x4, y4);
path.lineTo(x1, y1);
canvas.drawPath(path, currentPaint);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26434 次 |
| 最近记录: |