使用opencv java检测图像中文档的边界
我想在android中检测文档的四个角落。 Iam使用opencv库。
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)还是我需要遵循完全不同的方法?
检查links.hope它有帮助。
用于检测照片中纸张角落的算法
http://opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/
上一篇: Detect boundaries of a document in an image using opencv java
下一篇: Is it possible to find the edge of a "spotty" region in emgucv?