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

10

我有一大批扫描图像,它们都有一定的偏斜,并带有白色区域。

因此,这些图像具有由彩色矩形组成的形状,被一个较大的白色区域包围。问题是这些彩色矩形不平行于图像边界。

我相信肯定有一种编程方法能够检测出这些彩色矩形,以便我可以旋转图像(从而将其去掉偏斜),然后裁剪它,只留下有趣的部分。我猜我真的不确定这个过程叫什么,所以我在Google上搜索解决方案时遇到了麻烦。

是否有人知道一种方法可以让我开始?是否有任何库可以使用?或者是否有任何算法名称可以提供帮助?

我计划使用Java进行这个项目,但我还没有真正开始,所以我对任何语言的库建议都持开放态度。

3个回答

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

谢谢!我搜索霍夫变换时找到了http://www.recognition-software.com/image/deskew/,虽然它不能直接解决我的问题,但我稍微调整了一下代码,最终得以很好地解决了。 - pkaeding
它是否被Tess4j所取代? - wprl

3

Alyn是一个第三方工具包,用于检测和修正包含文本的图像中的倾斜。它使用Canny边缘检测和霍夫变换来查找倾斜。

要检测倾斜,只需运行

./skew_detect.py -i image.jpg

要纠正偏斜,运行

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

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接