用Python寫了一個(gè)圖像文字識別OCR工具

導(dǎo)讀:人生苦短,快學(xué)Python!今天我們直接寫一個(gè)圖像文字識別OCR工具!

文本區(qū)域檢測+文字識別 文本區(qū)域可視化 文字內(nèi)容列表 圖像、文件夾加載 圖像滾輪縮放查看 繪制區(qū)域、編輯區(qū)域 復(fù)制所選文本識別結(jié)果
conda?create?-n?ocr
conda?activate?ocr#?CPU版本
pip?install?paddlepaddle==2.1.0?-i?https://mirror.baidu.com/pypi/simple?#?GPU版本
python3?-m?pip?install?paddlepaddle-gpu==2.1.0?-i?https://mirror.baidu.com/pypi/simple?pip?install?"paddleocr>=2.0.1"?#?推薦使用2.0.1+版本pip3?install?-U?https://paddleocr.bj.bcebos.com/whl/layoutparser-0.0.0-py3-none-any.whl
paddleocr?--image_dir?./imgs/11.jpg?--use_angle_cls?true?--use_gpu?false
from?paddleocr?import?PaddleOCR,?draw_ocr
#?Paddleocr目前支持的多語言語種可以通過修改lang參數(shù)進(jìn)行切換
#?例如`ch`,?`en`,?`fr`,?`german`,?`korean`,?`japan`
ocr?=?PaddleOCR(use_angle_cls=True,?lang="ch")??#?need?to?run?only?once?to?download?and?load?model?into?memory
img_path?=?'./imgs/11.jpg'
result?=?ocr.ocr(img_path,?cls=True)
for?line?in?result:
????print(line)[[[24.0,?36.0],?[304.0,?34.0],?[304.0,?72.0],?[24.0,?74.0]],?['純臻營養(yǎng)護(hù)發(fā)素',?0.964739]]?[[[24.0,?80.0],?[172.0,?80.0],?[172.0,?104.0],?[24.0,?104.0]],?['產(chǎn)品信息/參數(shù)',?0.98069626]]?[[[24.0,?109.0],?[333.0,?109.0],?[333.0,?136.0],?[24.0,?136.0]],?['(45元/每公斤,100公斤起訂)',?0.9676722]]?......

class?MainWindow(QMainWindow):
?FIT_WINDOW,?FIT_WIDTH,?MANUAL_ZOOM?=?0,?1,?2
?def?__init__(self):
??super().__init__()??#?調(diào)用父類構(gòu)造函數(shù),創(chuàng)建QWidget窗體
??self._ui?=?Ui_MainWindow()??#?創(chuàng)建ui對象
??self._ui.setupUi(self)??#?構(gòu)造ui
??self.setWindowTitle(__appname__)
??#?加載默認(rèn)配置
??config?=?get_config()
??self._config?=?config????
??#?單選按鈕組
????????self.checkBtnGroup?=?QButtonGroup(self)
????????self.checkBtnGroup.addButton(self._ui.checkBox_ocr)
????????self.checkBtnGroup.addButton(self._ui.checkBox_det)
????????self.checkBtnGroup.addButton(self._ui.checkBox_recog)
????????self.checkBtnGroup.addButton(self._ui.checkBox_layoutparser)
????????self.checkBtnGroup.setExclusive(True)?????#?按鈕響應(yīng)函數(shù)
self._ui.btnOpenImg.clicked.connect(self.openFile)
self._ui.btnOpenDir.clicked.connect(self.openDirDialog)
self._ui.btnNext.clicked.connect(self.openNextImg)
self._ui.btnPrev.clicked.connect(self.openPrevImg)
self._ui.btnStartProcess.clicked.connect(self.startProcess)
self._ui.btnCopyAll.clicked.connect(self.copyToClipboard)
self._ui.btnSaveAll.clicked.connect(self.saveToFile)
self._ui.listWidgetResults.itemSelectionChanged.connect(self.onItemResultClicked)

參考鏈接


干貨直達(dá)??
評論
圖片
表情
