欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于PyQt5實(shí)現(xiàn)圖轉(zhuǎn)文功能(示例代碼)

 更新時間:2022年06月09日 10:40:19   作者:瘋狂的豆包  
PyQt提供了一個設(shè)計(jì)良好的窗口控件集合,具有更方便的操作性。學(xué)過VB的同學(xué)會知道,相比與VB的使用,在界面設(shè)計(jì)上元素更豐富,這篇文章主要介紹了基于PyQt5完成的圖轉(zhuǎn)文功能,需要的朋友可以參考下

PyQt是Qt框架的Python語言實(shí)現(xiàn),是最強(qiáng)大的GUI庫之一。PyQt提供了一個設(shè)計(jì)良好的窗口控件集合,具有更方便的操作性。學(xué)過VB的同學(xué)會知道,相比與VB的使用,在界面設(shè)計(jì)上元素更豐富。

本文就是基于PyQt5完成的圖轉(zhuǎn)文功能,先看界面:

一、界面PicZ.ui可參考之前的文章如何實(shí)現(xiàn),程序代碼如下:

from PyQt5 import QtCore, QtGui, QtWidgets
import  base64
import os
from return_png import img as retu  # 引入img變量,賦別名為pdf_cf
class Ui_PicZ(object):
    def setupUi(self, PicZ):
        tmp = open('return.png', 'wb')  # 創(chuàng)建臨時的文件
        tmp.write(base64.b64decode(retu))  # 把這個one圖片解碼出來,寫入文件中去。
        tmp.close()
        PicZ.setObjectName("PicZ")
        PicZ.resize(1400, 814)
        PicZ.setMinimumSize(QtCore.QSize(1400, 814))
        PicZ.setMaximumSize(QtCore.QSize(1400, 814))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        PicZ.setPalette(palette)
        self.Reback = QtWidgets.QToolButton(PicZ)
        self.Reback.setGeometry(QtCore.QRect(10, 10, 51, 41))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush)
        self.Reback.setPalette(palette)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("return.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.Reback.setIcon(icon)
        self.Reback.setIconSize(QtCore.QSize(100, 100))
        self.Reback.setAutoRaise(True)
        self.Reback.setObjectName("Reback")
        self.label = QtWidgets.QLabel(PicZ)
        self.label.setGeometry(QtCore.QRect(88, 8, 141, 41))
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.frame = QtWidgets.QFrame(PicZ)
        self.frame.setGeometry(QtCore.QRect(20, 60, 1351, 161))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        self.frame.setPalette(palette)
        self.frame.setAutoFillBackground(True)
        self.frame.setFrameShape(QtWidgets.QFrame.Box)
        self.frame.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame.setLineWidth(1)
        self.frame.setMidLineWidth(0)
        self.frame.setObjectName("frame")
        self.scwd = QtWidgets.QPushButton(self.frame)
        self.scwd.setGeometry(QtCore.QRect(570, 30, 191, 61))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
        self.scwd.setPalette(palette)
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        font.setPointSize(16)
        font.setBold(True)
        font.setWeight(75)
        self.scwd.setFont(font)
        self.scwd.setAutoFillBackground(True)
        self.scwd.setAutoDefault(False)
        self.scwd.setDefault(False)
        self.scwd.setFlat(True)
        self.scwd.setObjectName("scwd")
        self.label_2 = QtWidgets.QLabel(self.frame)
        self.label_2.setGeometry(QtCore.QRect(490, 110, 371, 21))
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.frame_2 = QtWidgets.QFrame(PicZ)
        self.frame_2.setGeometry(QtCore.QRect(1050, 280, 321, 301))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(245, 255, 250))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        self.frame_2.setPalette(palette)
        self.frame_2.setAutoFillBackground(True)
        self.frame_2.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_2.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_2.setLineWidth(1)
        self.frame_2.setMidLineWidth(0)
        self.frame_2.setObjectName("frame_2")
        self.label_3 = QtWidgets.QLabel(self.frame_2)
        self.label_3.setGeometry(QtCore.QRect(20, 20, 191, 31))
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        font.setPointSize(14)
        font.setBold(False)
        font.setWeight(50)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")
        self.xzwd = QtWidgets.QPushButton(self.frame_2)
        self.xzwd.setGeometry(QtCore.QRect(30, 100, 271, 61))
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 217, 159))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(120, 120, 120))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.PlaceholderText, brush)
        self.xzwd.setPalette(palette)
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        font.setPointSize(14)
        font.setBold(True)
        font.setWeight(75)
        self.xzwd.setFont(font)
        self.xzwd.setAutoFillBackground(True)
        self.xzwd.setAutoDefault(False)
        self.xzwd.setDefault(False)
        self.xzwd.setFlat(True)
        self.xzwd.setObjectName("xzwd")
        self.label_4 = QtWidgets.QLabel(PicZ)
        self.label_4.setGeometry(QtCore.QRect(20, 280, 500, 500))
        self.label_4.setFrameShape(QtWidgets.QFrame.Box)
        self.label_4.setText("")
        self.label_4.setObjectName("label_4")
        self.label_5 = QtWidgets.QLabel(PicZ)
        self.label_5.setGeometry(QtCore.QRect(530, 280, 500, 500))
        self.label_5.setFrameShape(QtWidgets.QFrame.Box)
        self.label_5.setText("")
        self.label_5.setObjectName("label_5")
        self.label_7 = QtWidgets.QLabel(PicZ)
        self.label_7.setGeometry(QtCore.QRect(210, 250, 71, 21))
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        self.label_7.setFont(font)
        self.label_7.setObjectName("label_7")
        self.label_8 = QtWidgets.QLabel(PicZ)
        self.label_8.setGeometry(QtCore.QRect(730, 250, 71, 21))
        font = QtGui.QFont()
        font.setFamily("微軟雅黑")
        self.label_8.setFont(font)
        self.label_8.setObjectName("label_8")
        self.retranslateUi(PicZ)
        QtCore.QMetaObject.connectSlotsByName(PicZ)
        os.remove("return.png")
    def retranslateUi(self, PicZ):
        _translate = QtCore.QCoreApplication.translate
        PicZ.setWindowTitle(_translate("PicZ", "圖片轉(zhuǎn)文字"))
        self.Reback.setText(_translate("PicZ", "..."))
        self.label.setText(_translate("PicZ", "圖轉(zhuǎn)文"))
        self.scwd.setText(_translate("PicZ", "+ 上傳圖片"))
        self.label_2.setText(_translate("PicZ", "<html><head/><body><p>上傳圖片至此 支持格式:jpg, png,bmp,gif,tiff等</p></body></html>"))
        self.label_3.setText(_translate("PicZ", "操作"))
        self.xzwd.setText(_translate("PicZ", "下載Word文檔"))
        self.label_7.setText(_translate("PicZ", "圖片顯示"))
        self.label_8.setText(_translate("PicZ", "識別結(jié)果"))

二、main.py實(shí)現(xiàn)主要功能程序如下:

class textwindow(QtWidgets.QWidget,Ui_PicZ):
  def __init__(self):
    super(textwindow,self).__init__()
    self.setupUi(self)
  def re_back(self):
    self.close()
  def sctp(self):
      fileName, fileType = QtWidgets.QFileDialog.getOpenFileName(self, "選取文件", os.getcwd(),"自定義(*.jpg;*.png;*.jpeg;*);;All Files(*)")
      image = QPixmap(fileName)
      f = str(fileName)
      self.p, self.s = f.split(".")
      resImg1 = image.scaled(QSize(500, 500))
      self.label_4.setPixmap(resImg1)
      self.label_4.setScaledContents(True)
      self.text = pytesseract.image_to_string(f, lang="chi_sim+eng", config='--psm 6')
      # 打印識別后的文本d
      self.label_5.setText(self.text)
  def xzwj(self):
      document=Document()
      document.add_paragraph(self.text)
      document.save("{}_圖轉(zhuǎn)文.docx".format(self.p))
      root = tkinter.Tk()
      root.withdraw()
      tkinter.messagebox.showinfo("提示", "成功下載到源文件所在文件夾")

說明如下:

(1) def sctp(self): 其中的sctp為按鈕的objectName屬性名字;def xzwj(self):其中的xzwj為按鈕的objectName屬性名字;

(2) 可通過點(diǎn)擊按鈕實(shí)現(xiàn)本地文件上傳;

fileName, fileType = QtWidgets. QFileDialog.getOpenFileName(self, "選取文件", os.getcwd(), "自定義(*.jpg;*.png;*.jpeg;*);;All Files(*)")

(3) 利用label組件顯示圖片,同時自適應(yīng)圖片;

(4) 關(guān)鍵點(diǎn)為借助pytesseract模塊實(shí)現(xiàn)離線模式圖轉(zhuǎn)文,在安裝過程中務(wù)必安裝語言包,否則功能不會實(shí)現(xiàn),具體如何安裝,大家可自行搜索;

(5) 最關(guān)鍵可實(shí)現(xiàn)圖轉(zhuǎn)文結(jié)果頁會在label組件中顯示。

三、最后在主程序中加入以上子程序。

if __name__ =="__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    win = mywindow()
    pt = textwindow()
    win.show()
    win.Pic_SB.clicked.connect(win.pic_main)
    win.Pic_SB.clicked.connect(pt.show)
    pt.Reback.clicked.connect(pt.re_back)
    pt.Reback.clicked.connect(win.show)
    pt.scwd.clicked.connect(pt.sctp)
    pt.xzwd.clicked.connect(pt.xzwj)
    sys.exit(app.exec_())

四、總結(jié)

本文介紹的圖轉(zhuǎn)文功能還有一些待完善地方就是pytesseract該模塊,不會很清晰的顯示所有文字,不是對所有照片都好用,有時還會死機(jī)。當(dāng)然我們可以在后續(xù)階段逐漸完善。

到此這篇關(guān)于基于PyQt5實(shí)現(xiàn)圖轉(zhuǎn)文功能(示例代碼)的文章就介紹到這了,更多相關(guān)PyQt5圖轉(zhuǎn)文內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論