Android OpenCV 查找最大的正方形或矩形

标签 android opencv homography

这可能已经得到解答,但我迫切需要一个答案。我想在 Android 中使用 OpenCV 找到图像中最大的正方形或矩形。我找到的所有解决方案都是 C++,我尝试转换它,但它不起作用,我不知道我哪里错了。

private Mat findLargestRectangle(Mat original_image) {
    Mat imgSource = original_image;

    Imgproc.cvtColor(imgSource, imgSource, Imgproc.COLOR_BGR2GRAY);
    Imgproc.Canny(imgSource, imgSource, 100, 100);

    //I don't know what to do in here

    return imgSource;
}

我在这里试图完成的是创建一个基于原始图像(返回值 Mat 图像)中找到的最大正方形的新图像。

这就是我想要发生的事情:

1 http://img14.imageshack.us/img14/7855/s7zr.jpg

也还好,我只得到最大方格的四个点,我觉得我可以从那里拿。但是,如果我可以返回裁剪后的图像会更好。

最佳答案

精明之后

1- 您需要使用 gaussian blur 来降低噪音和 find all the contours

2- 查找并列出所有 contours' areas .

3- 最大的轮廓将只是绘画。

4- 现在使用 perpective transformation将您的形状转换为矩形。

检查 sudoku solver examples看到类似的处理问题。 (最大轮廓+透视)

关于Android OpenCV 查找最大的正方形或矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17512234/

相关文章:

opencv - 单应矩阵分解为旋转矩阵和平移向量

opencv - 图像对齐方式warpPerspective或warpAffine

android - 如何获得在android中停止服务的 Intent

python ,opencv : duration of time an object is detected on webcam

python - 在PyDev控制台中导入简历

c++ - 复制图像后在 imshow 中断言失败 (size.width>0 && size.height>0)

java - OpenCV:在 Java 中使用单应性和透视变换将对象拟合到场景中

java - 阅读除英语以外其他语言的短信

android - 我们可以通过打开下载文件夹吗? Intent ?

android - TTS 回调 : dispatch completed to 1