python - 通过子进程 python 调用时,tesseract 不显示任何输出
问题描述
我试图使用子进程从 python 中的 tesseract 读取验证码,但它给出的乱码输出为
p = subprocess.Popen(['tesseract', 'CAPT1.png','stdout','-l','eng','--oem 3','--psm 7','>>','nm.txt'], stdout=subprocess.PIPE)
p.communicate()
Out : (b' \n\x0c', None)
尝试过 decon 仍然没有运气:-
print (stdout.decode('utf-8'))
Out : ' \n\x0c'
甚至 pytesseract 也没有给出任何输出:
import pytesseract
ocr = pytesseract.image_to_string(Image.open('CAPT1.png'), lang='eng', \
config='eng --psm 7 --oem 3')
print (ocr)
Out :
而在 linux 中从命令行调用相同的 tesseract 时会给出正确的输出
tesseract CAPT1.png stdout -l eng --oem 3 --psm 7
Out: X8ZUZ4
解决方案
通过hack解决,只需将命令复制到shell脚本中并在笔记本中执行为
!sh 测试.sh
推荐阅读
- node.js - S3 文件没有可读长度
- reactjs - 有没有办法提取 JSX 元素的道具类型?
- python - 构建整数列表时限制频率
- reactjs - redux-toolkit -> 检测到不可序列化的值
- python - Python如何从不同的文件中导入和使用一个类
- python - Azure Function (python) insert to Azure SQL 不断收到错误
- redirect - 仅将特定类型的 URL 重定向到新的子域
- java - 启用 JMX 端口 Amazon Java cerretto
- python - python ctypes内存访问string_at函数
- java - java.lang.IllegalStateException:无法执行 android:onClick 的方法。应用程序崩溃