我正在尝试通过 OpenCV 实现纸张检测。我能够理解如何获得它的概念,
Input-> Canny-> Blur-> Find Conture-> Search (closed)Quadrilateral-> Draw Conture
但是,我还是 OpenCV 编程的新手。所以在实施过程中遇到了问题。我能够通过这个答案找到帮助
但它在每个可能的衬里上绘制轮廓。这是我试图实现的代码。
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
mRgba = inputFrame.rgba();
Imgproc.drawContours(mRgba,findContours(mRgba), 0, new Scalar(0 , 255, 0), 5);
return mRgba;
}
public static class Quadrilateral {
public MatOfPoint contour;
public Point[] points;
public Quadrilateral(MatOfPoint contour, Point[] points) {
this.contour = contour;
this.points = points;
}
}
public static Quadrilateral findDocument( Mat inputRgba ) {
ArrayList<MatOfPoint> contours = findContours(inputRgba);
Quadrilateral quad = getQuadrilateral(contours);
return …Run Code Online (Sandbox Code Playgroud)