为何Tesseract对原图与反转图检测结果一致?如何识别反转图中的Juliet?
问题描述
我需要识别图像中的所有文字。原图中Tesseract识别出了全部4行文字,但未识别出“Juliet”,这符合预期。随后我反转图像,本想仅识别“Juliet”,但结果还是只识别出那4行文字,完全没包含“Juliet”,和原图检测结果一致。请问怎么才能在反转图像中识别出“Juliet”?
相关图像:
- 原图:

- 反转图像:

使用的Tesseract版本:
tesseract v5.5.0.20241111 leptonica-1.85.0 libgif 5.2.2 : libjpeg 8d (libjpeg-turbo 3.0.4) : libpng 1.6.44 : libtiff 4.7.0 : zlib 1.3.1 : libwebp 1.4.0 : libopenjp2 2.5.2 Found AVX2 Found AVX Found FMA Found SSE4.1 Found libarchive 3.7.7 zlib/1.3.1 liblzma/5.6.3 bz2lib/1.0.8 liblz4/1.10.0 libzstd/1.5.6 Found libcurl/8.11.0 Schannel zlib/1.3.1 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libpsl/0.21.5 libssh2/1.11.0
解决建议
针对反转图像无法识别“Juliet”的问题,可尝试以下方案:
调整页面分割模式:默认分割模式可能忽略了反转后“Juliet”的位置,试试不同的
--psm参数:--psm 6:假设图像是单个统一文本块--psm 10:针对单个字符识别--psm 3:全自动分割但更细致
示例命令:
tesseract --psm 6 你的反转图像路径 output.txt增强图像对比度:用工具对反转图像做二值化处理,强化文字边缘。比如用OpenCV的Python代码:
import cv2 # 读取灰度图 img = cv2.imread("你的反转图像路径", 0) # 二值化 _, binary_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 保存处理后的图像 cv2.imwrite("增强后图像.png", binary_img)再用Tesseract识别处理后的图像。
限制识别字符范围:如果仅需识别字母,通过白名单减少干扰:
tesseract -c tessedit_char_whitelist=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz --psm 10 你的反转图像路径 output.txt检测文字方向:反转后文字方向可能异常,让Tesseract自动检测方向:
tesseract --oem 3 --psm 0 你的反转图像路径 output.txt
内容的提问来源于stack exchange,提问作者DjAlan
相关产品推荐
相关产品推荐

