繁体   English   中英

在Java OpenCV Android中将轮廓变形为完美的正方形Mat

[英]Warping a contour to a perfect square Mat in Java OpenCV Android

我像我之前的许多人一样,正在尝试从图像中数字化数独板。 我有:

  1. 将图像灰度,模糊并阈值化为清晰的二进制图像
  2. 确定与数独板的周长正确对应的最大轮廓

但是,如果纸张是弯曲的,则电路板的轮廓将无法整齐地放入boundingRect中。 它的边缘将是椭圆形的。

我真正想要的是采取一些MatOfPoint maxContour; 然后将父Mat的相应区域变形为正方形,这样我就可以将木板移除为一个完美的正方形,并自行对其进行操作。

但是,任何有关将板或单元格从Sudoku板图像中移除的建议都值得赞赏,我玩过Hough变换,Sobel算法以及许多其他令人讨厌的方案,这些使我有些困惑。

提前致谢!

一种方法是首先获取由数独角表示的矩形的最小边界矩形 ,该矩形实际上是透视变换的矩形。

然后用数独角落与得到的矩形角落扭曲的图像 (或者只是扭曲的角落 ,无论适合你),这将导致在一条直线图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM