Deskewing an image with background (Python)(对带有背景的图像进行倾斜(Python))
问题描述
我正在处理一个项目,在该项目中,我正在对标签上的文本进行OCR。我的工作是对图像进行倾斜,使其可用tesseract读取。
我一直在使用this approach,对图片进行灰度和阈值处理,获取黑色像素坐标,在其周围绘制minAreaRect,然后根据此矩形的倾斜角度校正倾斜。这适用于,但不适用于具有背景的图像,如所显示的图像。在那里,它计算的倾斜角度为0.0,并且不旋转图像。(预期结果:17°)
我怀疑这是因为背景中有黑色像素。正因为如此,minAreaRect绕着整个图片旋转,因此导致倾斜角度为0。
我尝试删除背景,但找不到工作得足够好的方法,因此只留下带有文本的标签
我尝试的另一种方法是通过k均值聚类对像素进行聚类。但是,即使手动选择好的k,包含文本的群集仍包含部分背景。
更不用说我还需要另一个方法来遍历所有群集,并使用某种启发式方法来确定哪个群集是文本群集,哪个群集是背景群集,这将耗费大量的运行时间。
对有背景的图像进行倾斜的最佳方法是什么?
推荐答案
您可以尝试基于深度学习的natural scene text detection方法。使用这些方法,您可以获得每个文本的旋转边界框。在此基础上得到覆盖所有方框的旋转边界矩形。然后使用该矩形的4个角更正图像。
RRPN_plusplus
基于示例图像RRPN_plusplus在极端角度下似乎做得相当好。
东部
PyimageSearch提供了EAST场景文本检测器教程。虽然不确定东方在极端角度下会做得很好。
https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/
图像来源,https://github.com/argman/EAST。
这些应该可以帮助您找到最近更好的报告和方法,
- https://github.com/topics/scene-text-detection
- https://paperswithcode.com/task/scene-text-detection
- https://paperswithcode.com/task/curved-text-detection
这篇关于对带有背景的图像进行倾斜(Python)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:对带有背景的图像进行倾斜(Python)
基础教程推荐
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
