java - 使用opencv java检测图像中文档的边界

标签 java android opencv image-processing feature-detection

我想在android中检测文档的4个角。使用opencv库的iam。
IAM使用以下方法-
(1)使图像灰度化
(2)应用中值模糊
(3)应用自适应阈值
(4)canny边缘检测
(5)寻找轮廓
(6)找出最大轮廓
(7)得到最大轮廓的边角
我的代码是

srcImg = Utils.loadResource(this, R.drawable.test1, Highgui.CV_LOAD_IMAGE_COLOR);
Imgproc.cvtColor(srcImg, srcImg, Imgproc.COLOR_BGR2GRAY);
Imgproc.medianBlur(srcImg, srcImg, 9);
Imgproc.adaptiveThreshold(srcImg, srcImg, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 11, 2);
Imgproc.Canny(srcImg, srcImg, 50, 80);


Imgproc.findContours(srcImg,contours , hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);

canny边缘检测后,由于图像中检测到的最大轮廓线不是文档的实际边界,导致多个点的轮廓线被破坏。在某些图像中,最大轮廓显示边界的某些部分,但在某些图像中,它指向文档的中心或完全位于文档外部
(a)在这种情况下,我如何继续?
我应用的另一种方法是应用houghes线变换并计算以90度角相交但在这种情况下得不到精确点的线的交点。当我把88
(b)如何处理这么多点
(c)还是我需要采取完全不同的做法?

最佳答案

关于java - 使用opencv java检测图像中文档的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035858/

相关文章:

java - 使用 Java 读取多个对象 JSON

java - 当需要随机数时如何设置限制(1 或 2)?

c++ - Opencv:Hough Circles 自动化参数?

java - 强制先执行 "WebFilter"

java - 在 Java 中创建一个几秒钟后消失的普通消息框

java - 在谷歌地图中为我的位置按钮设置自定义 View

android - 为什么在我构建项目时 Android Studio 会自动下载 Gradle?

用于显示 Linter 提示的 Android Studio 快捷方式?

opencv - 改进圆圈检测

ios - 为 mac 编译 stasm