2021年11月18日pyqt界面设计+昆虫识别

一.使用Designer软件制作界面
使用命令下载pyqt5和pyqt5-tools

pip install pyqt5
pip install pyqt5-tools

软件在pyqt5-tools库中
在这里插入图片描述
打开pyqt5-tools,进入.\pyqt5_tools\Qt\plugins\platforms路径复制里面所有文件到路径pyqt5_tools\Qt\bin\platforms中
在这里插入图片描述在这里插入图片描述
进入pyqt5_tools\Qt\bin路径中,打开designer软件
在这里插入图片描述
设计一个简单的昆虫识别界面
在这里插入图片描述
二.使用yolo3-pytorch框架识别昆虫
解压kunchong.ui文件生成kunchong.py文件
使用如下命令解压

python -m PyQt5.uic.pyuic kunchong.ui -o kunchong.py

提前训练好昆虫识别模型
在这里插入图片描述
写出代码连接昆虫识别界面,代码如下

from PyQt5 import QtGui
from PyQt5.QtWidgets import QMainWindow, QApplication
import cv2
import numpy as np
from yolo import YOLO
from PIL import Image
import numpy as np
import cv2
import time
from kunchong import Ui_MainWindow
import sys
yolo = YOLO()

class UsingTest(QMainWindow, Ui_MainWindow):
    def __init__(self, *args, **kwargs):
        super(UsingTest, self).__init__(*args, **kwargs)
        self.setupUi(self)  # 初始化ui
        self.slot_init()

    def slot_init(self):
        self.pushButton.clicked.connect(self.storage)
        self.pushButton_2.clicked.connect(self.storage1)

    def storage(self):
        capture = cv2.VideoCapture("2.mp4")
        fps = 0.0
        while (True):
            t1 = time.time()
            # 读取某一帧
            ref, frame = capture.read()
            # 格式转变,BGRtoRGB
            print(ref)
            if ref == True:
                frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
                # 转变成Image
                frame = Image.fromarray(np.uint8(frame))

                # 进行检测
                t2 = time.time()
                frame = np.array(yolo.detect_image(frame))
                t3 = time.time()
                print(t3 - t2)

                # RGBtoBGR满足opencv显示格式
                frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

                fps = (fps + (1. / (time.time() - t1))) / 2
                print("fps= %.2f" % (fps))
                frame = cv2.putText(frame, "fps= %.2f" % (fps), (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
                show = cv2.resize(frame, (640, 480))  # 把读到的帧的大小重新设置为 640x480
                show = cv2.cvtColor(show, cv2.COLOR_BGR2RGB)  # 视频色彩转换回RGB,这样才是现实的颜色
                showImage = QtGui.QImage(show.data, show.shape[1], show.shape[0],
                                         QtGui.QImage.Format_RGB888)  # 把读取到的视频数据变成QImage形式
                self.label.setPixmap(QtGui.QPixmap.fromImage(showImage))  # 往显示视频的Label里 显示QImage
                self.label.setScaledContents(True)
                c = cv2.waitKey(20) & 0xff
                if c == 27:
                    break
            else:
                quit()
        capture.release()
        cv2.destroyAllWindows()
    def storage1(self):
        quit()


if __name__ == '__main__':  # 程序的入口
    app = QApplication(sys.argv)
    win = UsingTest()
    win.show()
    sys.exit(app.exec_())

打包一下,代码如下,-w是不打开窗口,-i是设置图标

pyinstaller -F -w -i 1.ico main.py

运行结果展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记录一下实战

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

萧鼎

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值