二:PyQt5实践《做一个简单翻译软件》此处调用的是百度的翻译接口-----内附源码

首先展示一下最终的实现结果:源代码下载

这里调用的是百度的翻译接口,我们通过访问百度翻译 可以获得对应的url 和请求数据。。

 

第一步: 我们打开百度翻译的网址,在翻译这边随便输入一个中文,可以发现下面那个请求包。。然后打开,会发现对应的url 和请求数据。等会我们模拟浏览器进行发送请求。。然后获取翻译的内容。

  第二步:我们先简单做一个不带界面的翻译代码

           做了两个函数,一个是中文翻译为英文(函数translate()),一个是英文翻译为中文(函数translate1())。  url就是我们上面观察得到的url, 前面的v2版本号,我们在请求的url中去掉了。。接下来是data,这就是请求数据。。word就是我们带翻译的文本。最后会返回一个json格式的数据。。然后将数据提取出来即可。。

import requests

def translate(word):
    url = 'https://fanyi.baidu.com/transapi'
    data = {
        'from': 'zh',
        'to': 'en',
        'query': word,
        'transtype': 'realtime',
        'simple_means_flag': '3',
        'sign': '325815.7046',
        'token': '9b1b599bf1303d7d525833a9e17579bb'
    }
    response = requests.post(url, data=data).json()   # 将获取的数据转换为json格式
    print(response['data'][0]['result'][0][1])


def translate2(word):
    url = 'https://fanyi.baidu.com/transapi'
    data = {
        'from': 'en',
        'to': 'zh',
        'query': word,
        'transtype': 'realtime',
        'simple_means_flag': '3',
        'sign': '325815.7046',
        'token': '9b1b599bf1303d7d525833a9e17579bb'
    }
    response = requests.post(url, data=data).json()   # 将获取的数据转换为json格式
    print(response['data'][0]['result'][0][1])


if __name__ == '__main__':
    sign = input("你想进行的是中翻英还是英翻中(中翻英按1,英翻中按2):")
    if sign == '1':
        word = input("请输入要翻译的中文:")
        translate(word)
    elif sign == '2':
        word = input("请输入要翻译的英文:")
        translate2(word)
    else:
        print("滚,你输入错了!!!")

      输出结果展示:

第三步:我们借用PyQt设置一个界面。然后设置两个按钮,将这两个翻译函数绑定到按钮上即可。。

            ①:设置界面,通过QtDesign。。然后转换为下面的python代码

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Translate.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 601)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.zh2en = QtWidgets.QPushButton(self.centralwidget)
        self.zh2en.setGeometry(QtCore.QRect(220, 470, 81, 61))
        font = QtGui.QFont()
        font.setFamily("Arial")
        font.setBold(False)
        font.setWeight(50)
        self.zh2en.setFont(font)
        self.zh2en.setObjectName("zh2en")
        self.en2zh = QtWidgets.QPushButton(self.centralwidget)
        self.en2zh.setGeometry(QtCore.QRect(360, 470, 81, 61))
        self.en2zh.setObjectName("en2zh")
        self.clearBtn = QtWidgets.QPushButton(self.centralwidget)
        self.clearBtn.setGeometry(QtCore.QRect(490, 470, 91, 61))
        self.clearBtn.setObjectName("clearBtn")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(310, 40, 161, 31))
        font = QtGui.QFont()
        font.setFamily("楷体")
        font.setPointSize(26)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.textEdit1 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit1.setGeometry(QtCore.QRect(90, 120, 271, 301))
        self.textEdit1.setObjectName("textEdit1")
        self.textEdit2 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit2.setGeometry(QtCore.QRect(449, 121, 271, 301))
        self.textEdit2.setObjectName("textEdit2")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.zh2en.setText(_translate("MainWindow", "中文翻译英文"))
        self.en2zh.setText(_translate("MainWindow", "英文翻译中文"))
        self.clearBtn.setText(_translate("MainWindow", "清空"))
        self.label.setText(_translate("MainWindow", "小狗翻译"))
        self.textEdit1.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">请输入翻译的内容</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
        self.textEdit2.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'SimSun\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">输出结果</p></body></html>"))

        ②:接下来在同级目录下建立一个python文件callTranslate.py (这个名字是随便起的)实现调用界面,并给按钮绑定槽函数。。实现如下:

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import requests
import sys
from Translate import Ui_MainWindow


class Win(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(Win, self).__init__(parent)
        self.setupUi(self)

        self.zh2en.clicked.connect(self.zh2enfun)
        self.en2zh.clicked.connect(self.en2zhfun)
        self.clearBtn.clicked.connect(self.clearinfo)

    def zh2enfun(self):
        '''中文翻译为英文'''
        word = self.textEdit1.toPlainText()
        url = 'https://fanyi.baidu.com/transapi'
        data = {
            'from': 'zh',
            'to': 'en',
            'query': word,
            'transtype': 'realtime',
            'simple_means_flag': '3',
            'sign': '325815.7046',
            'token': '9b1b599bf1303d7d525833a9e17579bb'
        }
        response = requests.post(url, data=data).json()  # 将获取的数据转换为json格式
        info = response['data'][0]['result'][0][1]
        self.textEdit2.setText(info)

    def en2zhfun(self):
        '''英文翻译为中文'''
        word = self.textEdit1.toPlainText()
        url = 'https://fanyi.baidu.com/transapi'
        data = {
            'from': 'en',
            'to': 'zh',
            'query': word,
            'transtype': 'realtime',
            'simple_means_flag': '3',
            'sign': '325815.7046',
            'token': '9b1b599bf1303d7d525833a9e17579bb'
        }
        response = requests.post(url, data=data).json()  # 将获取的数据转换为json格式
        info = response['data'][0]['result'][0][1]
        self.textEdit2.setText(info)

    def clearinfo(self):
        self.textEdit1.clear()
        self.textEdit2.clear()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = Win()
    win.setObjectName("MainWindow")  # 为主窗口设置对象名 为了在下面设置背景颜色
    win.setStyleSheet("#MainWindow{border-image:url(./data/background.jpg);}")
    win.show()
    sys.exit(app.exec_())

最后执行callTranslate.py  输出结果:

 

 源代码下载    

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
### 回答1: 手写数字识别是深度学习在计算机视觉领域的一项经典任务,可以使用PyQt5和TensorFlow Keras框架来实现。这种任务可以通过卷积神经网络(CNN)来完成。 首先,需要下载一个手写数字图像数据集,例如MNIST数据集。然后,可以使用TensorFlow Keras框架来搭建一个简单的CNN模型,来对图像进行分类。这个CNN模型可以包含一些卷积层、池化层、扁平层和全连接层来实现对手写数字图像的分类。 接下来,使用PyQt5编写一个简单的GUI界面,提供用户手动输入数字图像的功能。GUI界面可以提供一个画布来让用户手动在上面绘制数字,然后对这个数字图像进行预测和分类。 具体实现时,可以结合PyQt5的信号和槽机制,将用户手动绘制的数字图像与CNN模型进行关联。当用户完成数字图像的绘制后,程序可以自动进行图像分类,并输出数字的识别结果。 总之,PyQt5和TensorFlow Keras框架提供了一个完整的工具链,用于实现手写数字识别的任务。开发者可以使用这些工具和技术来实现更加复杂的图像识别和分析任务。 ### 回答2: 手写数字识别是深度学习中的一个常见问题,而PyQt5则是一个流行的Python图形界面开发框架,可以将模型的结果以可视化的方式展示给用户。因此,使用PyQt5和TensorFlow-Keras搭建一个手写数字识别的应用程序是很有实际应用价值的。下面简单介绍一下实现步骤。 首先,我们需要一个手写数字数据集,可以使用MNIST数据集。通过使用TensorFlow-Keras的API,我们可以快速地构建一个CNN模型,并在训练数据上进行训练。 接下来,我们需要使用PyQt5构建GUI界面,这里可以使用QWidget框架。我们需要构建一个画布,允许用户手写数字,然后将用户手写的图像输入到CNN模型中进行预测。 在这里,我们可以使用QPainter来绘图,它可以使用户绘制完整的数字。在预测数字时,我们需要对图像进行一些预处理,例如将其大小调整为网络需要的输入尺寸,并将其转换为灰度图像。 在模型训练完毕之后,我们可以将模型保存下来,然后在PyQt5应用程序中加载模型,并使用它进行手写数字的识别。当用户在画布上完成手写数字绘制后,我们可以将其送入已经训练好的CNN模型,然后让程序显示识别结果。 通过这样的方式,我们可以使用PyQt5和TensorFlow-Keras开发手写数字识别应用程序,为用户提供更加便捷的数字识别方式。 ### 回答3: 手写数字识别是深度学习中的一个经典问题,利用人工神经网络或深度卷积神经网络可以达到很高的准确率。PyQt5是一个Python编写的GUI库,可以将深度学习算法应用到用户友好的界面中,同时TensorFlow-Keras是一个强大的深度学习框架,利用它可以快速搭建一个卷积神经网络。 首先,我们需要准备手写数字数据集,比如MNIST数据集。我们可以使用Keras自带的数据集接口进行加载。然后,通过PyQt5绘制一个界面,使得用户可以在界面上进行手写数字输入。手写数字数据可以通过鼠标或触控板进行输入,我们可以将手写数字截图并进行处理,可以使用 PIL 库或 OpenCV 进行图片处理,将图片大小调整为合适的大小。接着,我们需要将图片输入到卷积神经网络中进行预测。我们可以使用TensorFlow-Keras搭建一个卷积神经网络模型,并把刚刚处理好的图片输入到模型中,进行预测。最后,我们可以在界面上输出预测结果,告诉用户识别的数字是什么。 总之,借助PyQt5和TensorFlow-Keras的强大功能,我们可以轻松地设计一个手写数字识别的应用程序。但是需要注意的是,要精度高的数字识别需要使用比较深的卷积神经网络模型,并花费更多的时间来训练和调优模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

传道解惑也

打赏一下咯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值