在Java OpenCV Android中将轮廓扭曲为完美的方形垫

在Java OpenCV Android中将轮廓扭曲为完美的方形垫,java,android,opencv,Java,Android,Opencv,一、 像我之前的许多人一样,我正试图从一张图像中数字化数独板。我有: 对图像进行灰度缩放、模糊和阈值处理,生成清晰的二值图像 确定了与数独板周长正确对应的最大轮廓 但是,如果纸张是弯曲的,纸板的轮廓将无法整齐地与boundingRect对齐;它的边缘将是椭圆形的 我真正想要的是一种采用MatOfPoint maxContour的方法 并将父Mat中的相应区域扭曲为正方形,这样我就可以将电路板作为一个完美的正方形移除并自行操作 然而,任何关于从数独棋盘图像中取出棋盘或单元格的建议都是值得赞赏的,我

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

  • 对图像进行灰度缩放、模糊和阈值处理,生成清晰的二值图像
  • 确定了与数独板周长正确对应的最大轮廓
  • 但是,如果纸张是弯曲的,纸板的轮廓将无法整齐地与boundingRect对齐;它的边缘将是椭圆形的

    我真正想要的是一种采用
    MatOfPoint maxContour的方法
    并将父
    Mat
    中的相应区域扭曲为正方形,这样我就可以将电路板作为一个完美的正方形移除并自行操作

    然而,任何关于从数独棋盘图像中取出棋盘或单元格的建议都是值得赞赏的,我已经玩过Hough变换、Sobel算法和许多其他让我有点疲惫的胡思乱想的方案

    提前谢谢

    一种方法是首先使用数独角点表示的矩形,它实际上是透视变换的矩形

    然后将数独角点与生成的矩形角点一起使用(或者,随便你喜欢什么),这将生成一个直的图像