小编J. *_*ker的帖子

如何从 OpenCV Java 中的 HoughLines 变换中检测矩形

我知道这是重复的帖子,但仍然坚持执行。我遵循互联网上的一些指南,了解如何在 OpenCV 和 Java 中检测图像中的文档。我想出的第一个方法是在预处理一些图像处理(如模糊、边缘检测)后使用 findContours,在获得所有轮廓后,我可以找到最大的轮廓并假设这是我正在寻找的矩形,但它失败了在某些情况下,例如文件没有被完全取走,就像遗漏了一个角落。在尝试了几次和一些新的处理但根本不起作用之后,我发现 HoughLine 变换变得更容易了。从现在开始,我在图像中拥有所有线条,但仍然不知道接下来要做什么来定义我想要的兴趣矩形。这是我到目前为止的实现代码: 方法 1:使用 findContours

Mat grayImage = new Mat();
    Mat detectedEdges = new Mat();
    // convert to grayscale
    Imgproc.cvtColor(frame, grayImage, Imgproc.COLOR_BGR2GRAY);
    // reduce noise with a 3x3 kernel
    // Imgproc.blur(grayImage, detectedEdges, new Size(3, 3));
    Imgproc.medianBlur(grayImage, detectedEdges, 9);
    // Imgproc.equalizeHist(detectedEdges, detectedEdges);
    // Imgproc.GaussianBlur(detectedEdges, detectedEdges, new Size(5, 5), 0, 0, Core.BORDER_DEFAULT);
    Mat edges = new Mat();
    // canny detector, with ratio of lower:upper threshold of 3:1
    Imgproc.Canny(detectedEdges, edges, this.threshold.getValue(), this.threshold.getValue() * 3, 3, true);
    // …
Run Code Online (Sandbox Code Playgroud)

java opencv

1
推荐指数
1
解决办法
8227
查看次数

标签 统计

java ×1

opencv ×1