我正在开发一个 OCR,其主要功能是 OCR 发票,现在它们在被扫描时可能会发生(轻微)旋转。
您有什么建议来修复轮换?
我目前拥有的:
- 计算图像中“白线数量”的函数。
- 可以将图像旋转任意角度的功能。
- 当前的方法:每次将图像旋转 1 度,检查白线最多的解决方案,并将该图像用于其余的 OCR 过程。
- 缺点:每次旋转需要 0.5 秒,图像以相当合理的高分辨率(2000 宽 x 3000 高)扫描,OCR 过程绝对需要该分辨率。
有什么方法可以检测图像中的旋转,这样我只需要进行一次昂贵的旋转?
问候。
最佳答案
- The downside: Every rotation takes 0.5 seconds, the images are scanned in a fairly reasonable high resolution (2000 width x 3000 height), and the resolution is definitely needed for the OCR process.
当然可以,但可能不需要高分辨率来分析白线。
我建议在第一次确定角度之前尝试缩小或裁剪图像(到较小的副本),并始终使用低分辨率版本直到确定角度。然后切换回用于最终旋转和 OCR 的高分辨率图像。
关于Java检测图像中的旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18443876/