这可能已经得到解答,但我迫切需要一个答案。我想在 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/