我想在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)还是我需要采取完全不同的做法?
最佳答案
查看链接,希望能有所帮助。
Algorithm to detect corners of paper sheet in photo
http://opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/
关于java - 使用opencv java检测图像中文档的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27035858/