看圖識字體:python實現圖片識別文字程序-字體教程免费ppt模版下载-道格办公

python實現圖片識別文字程序

tesseract+百度文字識別API。以下是一個示例程序,使用Python實現圖片識別文字功能:```pythonimport requestsfrom PIL import Imageimport pytesseract# 設置百度文字識別API的相關信息api_key = 'YOUR_API_KEY'api_secret = 'YOUR_API_SECRET'# 讀取圖片文件並進行文字識別def recognize_text(image_path): # 使用Tesseract進行文字識別im

示例簡介

python利用百度文字識別功能,實現對上傳的圖片進行掃描,獲取圖片的文字信息,並生成可執行的程序。

開發環境:Windows7+python3.7+pycharm2018.2.4(開發工具);

目錄機構:文件夾“build”、“dist”和文件“discernImg.spec”是生成exe時產生的數據;

最終效果:


百度端創建應用

創建過程參考《微信小程序利用百度AI實現掃描身份證獲取信息功能》(把“圖像識別”換為“文字識別”)。


實現過程

一、閱讀器UI設計

1、安裝模塊和配置工具,參考《python實現小說閱讀器》;

2、運行工具QtDesigner,利用QtDesigner工具箱設計出界面效果(所需要的控件可查看右邊區域),保存效果為文件dc.ui;

3、對文件dc .ui執行pyUIC(ui轉化為py代碼),執行完生成文件dc.py。

二、代碼設計

文件“discernImg.py”代碼如下,具體代碼解釋可參考《python智能聯繫人管理》;

Tips:tokenUrl更換為文字識別,詳細可參考

“https://cloud.baidu.com/doc/OCR/s/Sk3h7xyad”;

from PyQt5.QtWidgets import *from PyQt5.QtGui import *# 引入自定義模塊import dc# 引入內置模塊import sysimport os# 引入第三方模塊import requests, base64from PIL import Imageclass parentWindow(QWidget, dc. Ui_Form):    # 初始化方法def __init__(self):        # 找到父類首頁面super(parentWindow, self).__init__()        # 初始化頁面方法self.setupUi(self)        # 點擊選擇圖片self.selectImg.clicked.connect( self.openfile)        # 點擊查看圖片self.viewImg.clicked.connect(self.viewbtn)    # 選擇圖片執行方法def openfile(self):        # 啟動選擇文件對話空,查找jpg以及png圖片self.download_path = QFileDialog.getOpenFileName (self, "選擇要識別的圖片", os.getcwd(), "Image Files(*.jpg *.png)")        # 判斷是否選擇圖片if not self.download_path[0].strip():            QMessageBox. information(self, '提示信息', '沒有選擇名片圖片')            pass        else:            # pixmap解析圖片pixmap = QPixmap(self.download_path[0])            # 設置圖片self.imgLabel.setPixmap(pixmap)            # 讓圖片自適應label大小self.imgLabel.setScaledContents(True)            try:                # 識別名片圖片返回識別結果content = self.recgImg()            except:                QMessageBox.information(self, '提示信息', '識別錯誤請重新選擇圖片')            # 識別圖片的數據賦值words_result = content['words_result']            # print(words_result)            text = ''            for item in words_result:                for v in item.values():                    text = text + '\n' + v            self.discernText.setText (text)    # 識別名片圖片def recgImg(self):        # 獲取baiduToken        apikey = '你的apikey'        seckey = '你的seckey'        tokenUrl = 'https://aip.baidubce.com/oauth/2.0/token?grant_type =client_credentials&client_id=' + apikey + '&client_secret=' + seckey        res = requests.get(url=tokenUrl, headers={'content-type': 'application/json; charset=UTF-8'}).json()        baiduToken = res['access_token']        '''        圖片識別(API)        '''        request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/webimage"        # 二進制方式打開圖片文件f = open (self.download_path[0], 'rb')        img = base64.b64encode(f.read())        params = {"image": img}        # access_token = '[調用鑑權接口獲取的token]'        request_url = request_url + "?access_token=" + baiduToken        headers = {'content-type': 'application/x-www-form-urlencoded'}        response = requests.post(request_url, data=params, headers=headers)        if response:            # print (response.json())            return response.json()    # 點擊查看圖片顯示大圖功能def viewbtn(self):        if self.download_path:            # 使用電腦中的看圖工具打開圖片img = Image.open(self. download_path[0])            # 顯示圖片img.show()        else:            QMessageBox.information(self, '提示信息', '先選擇名片圖片')if __name__ == '__main__':    # 每一個PyQt5應用都必須創建一個應用對象app = QApplication(sys.argv)    # 初始化頁面window = parentWindow()    # 顯示首頁window.show()    sys.exit(app.exec_())

三、打包成exe

在項目下執行語句“pyinstaller -F discernImg.py”,打包成功後項目中新增dist文件,exe文件即為打包後的程序。

文章為用戶上傳,僅供非商業瀏覽。發布者:Lomu,轉轉請註明出處: https://www.daogebangong.com/zh-Hant/articles/detail/Python%20implements%20image%20recognition%20text%20program.html

(810)
打賞 支付宝扫一扫 支付宝扫一扫
single-end

相關推薦