【发布时间】:2018-03-13 15:31:44
【问题描述】:
我目前正在构建一个使用 OCR 来使用 PYQT5 从 PDF 文件中提取数据的应用程序,我需要在运行 OCR 之前使用终端将 pdf 转换为 jpeg;但是,当我在编译后运行这个子进程时它会崩溃,但如果我不编译程序,它会完美运行。
在我看来,问题在于子进程调用。我尝试了很多不同的方法,但我不知道为什么我的应用在编译并运行转换后总是崩溃。
注意:对于 PDF 到 JPEG,我使用 ImageMagick
目前用于编译:
py2applet --make-setup main.py
python3 setup.py py2app
Converter.py:
from subprocess import call
from PIL import Image
import pytesseract
from PyQt5 import QtWidgets
from ocrgui import Ui_MainWindow
class ImageConverter(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.show()
self.sbmt_btn_convert.clicked.connect(self.convert_image)
def convert_image(self): #Converts image into jpeg
text = str(self.input_convert.text())
output = str(self.output_convert.text())
convert = 'converted.jpeg'
call('convert -density 300 ' + text + ' ' + convert, shell=True)
im = Image.open(convert)
text = pytesseract.image_to_string(im, lang = 'eng')
file = open(output,'w')
file.write(text)
file.close()
call('rm converted.jpeg', shell=True)
print('Succesfully created')
Main.py:
import sys
from PyQt5.QtWidgets import QApplication
from calculator import CalculatorWindow
app = QApplication(sys.argv)
calculator = CalculatorWindow()
sys.exit(app.exec())
【问题讨论】:
标签: python python-3.x pyqt pyqt5 external-process