使用 Python 去扭曲页面的最佳方法是什么?

问题描述 投票:0回答:1

似乎以下是唯一一个对页面进行扭曲处理的Python软件:

https://pypi.org/project/page-dewarp/

如果我错了,请纠正我,但我尝试查找 pytesseract 是否自动扭曲页面,我很确定它们不会,因为它们只是链接到上述网站。无论如何,在对页面进行扭曲处理后,我想使用 pytesseract 对其进行 OCR。我的问题是,上述去扭曲软件虽然去扭曲效果相当好,但它降低了图像的清晰度,因此无法改善 OCR。例如,这里有两张图像,第二张图像已去扭曲。

如您所见,虽然第二张图像的 DPI 为 300 像素,但仍然非常褪色,并导致大量 OCR 错误。我想也许页面扭曲软件会“减去”一些像素,因为包含原始图像中包含的每个像素会太慢。好吧,如果需要的话,我可以在睡觉时扫描书籍,我不在乎是否需要 8 个小时来使一本书变形。但是,我无法弄清楚这些参数的含义以便调整它们。我尝试联系软件设计师但没有收到回复。以下是 github 站点上列出的参数,删除了明显无用的参数。

github 仓库

-ta TEXT_MIN_ASPECT, --min-text-aspect TEXT_MIN_ASPECT
                        Filter out text contours below this w/h ratio
  -tk TEXT_MAX_THICKNESS, --max-text-thickness TEXT_MAX_THICKNESS
                        Max reduced px thickness of detected text contour
  -wz ADAPTIVE_WINSZ, --adaptive-winsz ADAPTIVE_WINSZ
                        Window size for adaptive threshold in reduced px
  -ri RVEC_IDX, --rotation-vec-param-idx RVEC_IDX
                        Index of rvec in params vector (slice: pair of values)
  -ti TVEC_IDX, --translation-vec-param-idx TVEC_IDX
                        Index of tvec in params vector (slice: pair of values)
  -ci CUBIC_IDX, --cubic-slope-param-idx CUBIC_IDX
                        Index of cubic slopes in params vector (slice: pair of
                        values)
  -sw SPAN_MIN_WIDTH, --min-span-width SPAN_MIN_WIDTH
                        Minimum reduced px width for span
  -sp SPAN_PX_PER_STEP, --span-spacing SPAN_PX_PER_STEP
                        Reduced px spacing for sampling along spans
  -eo EDGE_MAX_OVERLAP, --max-edge-overlap EDGE_MAX_OVERLAP
                        Max reduced px horiz. overlap of contours in span
  -el EDGE_MAX_LENGTH, --max-edge-length EDGE_MAX_LENGTH
                        Max reduced px length of edge connecting contours
  -ec EDGE_ANGLE_COST, --edge-angle-cost EDGE_ANGLE_COST
                        Cost of angles in edges (tradeoff vs. length)
  -ea EDGE_MAX_ANGLE, --max-edge-angle EDGE_MAX_ANGLE
                        Maximum change in angle allowed between contours

我不知道这些意味着什么,也不知道什么才是改变这些参数的好数字。例如,假设图像的高度为 1401 像素,我有一种感觉,其中一个参数通过取 4 个像素的平均值,可能会将该数字减少到 300,如果我能找出如何禁止软件执行此操作,我可能会我的解决方案。

或者,如果有人知道用 Python 去扭曲图像的更好方法,那么我洗耳恭听。

python ocr
1个回答
0
投票

你可以使用github上Mzucker制作的page-dewarp工具。 由于 Python2 已经不再支持,因此社区还提供了一个用 python3 编写的版本here。我认为提供的文档已经足够好了。

© www.soinside.com 2019 - 2024. All rights reserved.