Image 如何检测(并纠正)图像中的倾斜?

Image 如何检测(并纠正)图像中的倾斜?,image,skew,Image,Skew,我收集了大量的扫描图像,它们都有些倾斜,周围有一个白色区域 因此,这些图像有矩形的颜色,周围有一个大的白色区域。问题是这些颜色矩形与图像边框不平行 我确信一定有一种方法可以通过编程检测这些颜色矩形,这样我就可以旋转图像(从而取消倾斜),然后裁剪图像,只留下感兴趣的部分。我想我不太确定这个过程叫什么,所以我在谷歌上搜索解决方案时遇到了麻烦 有人知道一种方法可以让我开始吗?有我应该去的图书馆吗?或者是一个有帮助的算法的名称 我计划在这个项目中使用Java,但我还没有真正开始,所以我愿意接受任何语言的

我收集了大量的扫描图像,它们都有些倾斜,周围有一个白色区域

因此,这些图像有矩形的颜色,周围有一个大的白色区域。问题是这些颜色矩形与图像边框不平行

我确信一定有一种方法可以通过编程检测这些颜色矩形,这样我就可以旋转图像(从而取消倾斜),然后裁剪图像,只留下感兴趣的部分。我想我不太确定这个过程叫什么,所以我在谷歌上搜索解决方案时遇到了麻烦

有人知道一种方法可以让我开始吗?有我应该去的图书馆吗?或者是一个有帮助的算法的名称

我计划在这个项目中使用Java,但我还没有真正开始,所以我愿意接受任何语言的库建议。

  • 边界探测
  • hough变换(如果图像上的所有矩形具有相同的倾斜)
  • 矩形轮廓检测(连接的组件轮廓,然后是最小面积边界矩形)

您也可以尝试使用scikit图像

这是一个很好的hough变换库,但也有其他方法,如Radon变换和几何变换来完成这类任务

这是一个python库

是第三方软件包,用于检测和修复包含文本的图像中的倾斜。它使用Canny边缘检测和Hough变换来发现倾斜

要检测倾斜,只需运行

./skew_detect.py -i image.jpg
要更正倾斜,请运行

./deskew.py -i image.jpg  -o skew_corrected_image.jpg

谢谢通过对Hough变换的搜索,我发现它并没有立即解决我的问题,但我能够稍微调整代码使其工作得很好。它是否被Tess4j所包含?