android - 使用多点和灵活尺寸裁剪图像?

标签 android opencv ocr crop

我想制作一个像凸轮扫描仪这样的应用程序来裁剪文档。

但我需要和我的两张图片一样的功能..

第一张图片显示相机拍摄的图像..

enter image description here

第二张图像识别捕获的图像部分像这样..

enter image description here

我研究得越来越多,但没有得到任何结果,所以我在这里问有没有人这样做过告诉我..

谢谢

最佳答案

我假设您的问题是检测要扫描的对象。

模式匹配或特征检测等对象检测机制不会为您带来您正在寻找的结果,因为您不知道您正在扫描的对象到底是什么。

基本上你在图片中搜索一个矩形对象。

对此的基本方法如下:

  • 运行 canny edge detector在图像上。在执行此操作之前,它可能有助于稍微模糊图像。物体的边缘应该清晰可见。

  • 现在你想做一个 Hough transform找到图片中的线条。

  • 搜索彼此成 90 度角的直线。问题是找到合适的。也许使用最接近图片框架且与之合理平行的线条就足够了。

  • 找到相交点来定义对象的边缘。

至少这应该会给您提示进一步研究的地方。

作为此类应用程序中的进一步步骤,您必须计算点的投影并对对象进行仿射变换。

我希望这会有所帮助。

写完这一切后,我发现this post.它应该对你有很大帮助。

由于我的回答是针对 OpenCV,您必须使用 OpenCV 库。 为此,您需要安装 Android Native Development Kit (NDK) . OpenCV for Android 上有一些关于如何在 Android 上使用 OpenCV 的很好的教程。页面。

要记住的一点是,Java 包装器的几乎每个函数都调用了 native 方法。那要花很多时间。因此,在将结果返回到 Java 部分之前,您希望在 native 代码中做尽可能多的事情。

关于android - 使用多点和灵活尺寸裁剪图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19679768/

相关文章:

android - 为什么 FusedLoactionProvider.getLocationAvailability() 返回 null(虽然它不应该)?

android - 为什么应用程序在第一次打开时会卡住一段时间。?

python - 在 OpenCV2 中找到最接近图像中心的轮廓

iphone - iPhone 中具有文本检测功能的增强现实引擎

c++ - Tesseract OCR 的置信度值

android - 无需扫描即可连接其他蓝牙 LE 设备?

java - 如何使用 Jackson 反序列化数组的数组?

c++ - 使用 OpenCV 在 MFC/C++ 应用程序中显示图像

python - 我遇到了这个错误(-215 :Assertion failed) ! ssize.empty() in function 'resize' in OpenCV

c# - 处理 OCR/计算机视觉结果以匹配收据结构