PyQt5+OpenCV+Matplotlib 基础操作教程代码

由于以前写的基础知识没有配写代码:http://download.csdn.net/download/eric_lmy/10121771
现在讲代码配上:显示效果如下:http://blog.csdn.net/Eric_lmy/article/details/78553354

推荐一个GitChat(赶紧领取,前十名免费,速速领取)
这里写图片描述

使用环境是:python3.6 opencv matplotlib pyqt5
也可以使用pyinstaller -F -w main.py 命令打包成ex文件,可以独立运行。(首先安装pyinstaller(本人使用1.0.0版本的))

ui功能和逻辑操作部分功能文件(mainWindow.py):

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

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

from PyQt5 import QtCore, QtGui, QtWidgets
import matplotlib.pyplot as plt 
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas 
from matplotlib.backends.backend_qt5 import NavigationToolbar2QT as NavigationToolbar 
import cv2
import time
import numpy as np 

class Ui_MainWindow(object):
    def __del__(self):
        self.camera.release()# 释放资源
        if self.out_release_flag:
            self.out.release()

    def setupUi(self, MainWindow):
        self.recod_flag = False
        self.out_release_flag = False
        self.snap_flag = False
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1332, 860)
        MainWindow.setMinimumSize(QtCore.QSize(1332, 860))
        MainWindow.setMaximumSize(QtCore.QSize(1332, 860))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setGeometry(QtCore.QRect(10, 10, 1321, 831))
        self.tabWidget.setObjectName("tabWidget")
        self.tuXiang = QtWidgets.QWidget()
        self.tuXiang.setObjectName("tuXiang")
        self.frame = QtWidgets.QFrame(self.tuXiang)
        self.frame.setGeometry(QtCore.QRect(0, 0, 991, 801))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        self.frame.setMinimumSize(QtCore.QSize(991, 801))
        self.frame.setMaximumSize(QtCore.QSize(991, 801))
        self.frame.setFocusPolicy(QtCore.Qt.NoFocus)
        self.frame.setLayoutDirection(QtCore.Qt.RightToLeft)
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame.setObjectName("frame")
        self.widgetforimage = QtWidgets.QWidget(self.frame)
        self.widgetforimage.setGeometry(QtCore.QRect(5, 5, 981, 791))
        self.widgetforimage.setObjectName("widgetforimage")
        self.verticalLayoutforimage = QtWidgets.QVBoxLayout(self.widgetforimage)
        self.verticalLayoutforimage.setContentsMargins(0, 0, 0, 0)
        self.verticalLayoutforimage.setObjectName("verticalLayoutforimage")

        self.figureforimage, self.figaxesforimage = plt.subplots()
        self.figureforimage.subplots_adjust(left=0.055,top=0.99,right=0.98,bottom=0.055)
        self.canvasforimage = FigureCanvas(self.figureforimage)
        self.toolbarforimage = NavigationToolbar(self.canvasforimage, self.widgetforimage)
        self.toolbarforimage.setGeometry(QtCore.QRect(150, 150, 971, 41))
        # self.toolbarforimage.setMinimumSize(QtCore.QSize(371, 41))
        # self.toolbarforimage.setMaximumSize(QtCore.QSize(371, 41))
        self.verticalLayoutforimage.addWidget(self.toolbarforimage)

        self.canvasforimage.setMinimumSize(QtCore.QSize(971, 741))
        self.canvasforimage.setMaximumSize(QtCore.QSize(971, 741))
        self.verticalLayoutforimage.addWidget(self.canvasforimage)

        self.frame_RGB = QtWidgets.QFrame(self.tuXiang)
        self.frame_RGB.setGeometry(QtCore.QRect(1000, 0, 311, 91))
        self.frame_RGB.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_RGB.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_RGB.setObjectName("frame_RGB")

        self.frame_RGB_quyu = QtWidgets.QFrame(self.frame_RGB)
        self.frame_RGB_quyu.setGeometry(QtCore.QRect(180, 10, 121, 71))
        self.frame_RGB_quyu.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_RGB_quyu.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_RGB_quyu.setObjectName("frame_RGB_quyu")
        self.widgetforquyu = QtWidgets.QWidget(self.frame_RGB_quyu)
        self.widgetforquyu.setGeometry(QtCore.QRect(1, 1, 118, 68))
        self.widgetforquyu.setObjectName("widgetforquyu")
        self.verticalLayoutforquyu = QtWidgets.QVBoxLayout(self.widgetforquyu)
        self.verticalLayoutforquyu.setContentsMargins(0, 0, 0, 0)
        self.verticalLayoutforquyu.setObjectName("verticalLayoutforquyu")

        self.figureforquyu, self.figaxesforquyu = plt.subplots()
        self.figureforquyu.subplots_adjust(left=0.01,top=0.99,right=0.99,bottom=0.01)
        self.canvasforquyu = FigureCanvas(self.figureforquyu)
        self.canvasforquyu.setMinimumSize(QtCore.QSize(118, 68))
        self.canvasforquyu.setMaximumSize(QtCore.QSize(118, 68))
        # self.canvas.setGeometry(QtCore.QRect(110, 50, 1111, 701))
        self.verticalLayoutforquyu.addWidget(self.canvasforquyu)

        self.widget = QtWidgets.QWidget(self.frame_RGB)
        self.widget.setGeometry(QtCore.QRect(10, 0, 161, 91))
        self.widget.setObjectName("widget")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.widget)
        self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label = QtWidgets.QLabel(self.widget)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.RGB_R_slider = QtWidgets.QSlider(self.widget)
        self.RGB_R_slider.setMaximum(255)
        self.RGB_R_slider.setPageStep(1)
        self.RGB_R_slider.setProperty("value", 255)
        self.RGB_R_slider.setOrientation(QtCore.Qt.Horizontal)
        self.RGB_R_slider.setObjectName("RGB_R_slider")
        self.horizontalLayout.addWidget(self.RGB_R_slider)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label_2 = QtWidgets.QLabel(self.widget)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout_2.addWidget(self.label_2)
        self.RGB_G_slider = QtWidgets.QSlider(self.widget)
        self.RGB_G_slider.setMaximum(255)
        self.RGB_G_slider.setPageStep(1)
        self.RGB_G_slider.setOrientation(QtCore.Qt.Horizontal)
        self.RGB_G_slider.setObjectName("RGB_G_slider")
        self.horizontalLayout_2.addWidget(self.RGB_G_slider)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.label_3 = QtWidgets.QLabel(self.widget)
        self.label_3.setObjectName("label_3")
        self.horizontalLayout_3.addWidget(self.label_3)
        self.RGB_B_slider = QtWidgets.QSlider(self.widget)
        self.RGB_B_slider.setMaximum(255)
        self.RGB_B_slider.setPageStep(1)
        self.RGB_B_slider.setOrientation(QtCore.Qt.Horizontal)
        self.RGB_B_slider.setObjectName("RGB_B_slider")
        self.horizontalLayout_3.addWidget(self.RGB_B_slider)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_4.addLayout(self.verticalLayout)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.RGB_R_spinBox = QtWidgets.QSpinBox(self.widget)
        self.RGB_R_spinBox.setMaximum(255)
        self.RGB_R_spinBox.setProperty("value", 255)
        self.RGB_R_spinBox.setObjectName("RGB_R_spinBox")
        self.verticalLayout_2.addWidget(self.RGB_R_spinBox)
        self.RGB_G_spinBox = QtWidgets.QSpinBox(self.widget)
        self.RGB_G_spinBox.setMaximum(255)
        self.RGB_G_spinBox.setObjectName("RGB_G_spinBox")
        self.verticalLayout_2.addWidget(self.RGB_G_spinBox)
        self.RGB_B_spinBox = QtWidgets.QSpinBox(self.widget)
        self.RGB_B_spinBox.setMaximum(255)
        self.RGB_B_spinBox.setObjectName("RGB_B_spinBox")
        self.verticalLayout_2.addWidget(self.RGB_B_spinBox)
        self.horizontalLayout_4.addLayout(self.verticalLayout_2)
        self.comboBox_type = QtWidgets.QComboBox(self.tuXiang)
        self.comboBox_type.setGeometry(QtCore.QRect(1010, 100, 69, 22))
        self.comboBox_type.setObjectName("comboBox_type")
        self.comboBox_type.addItem("")
        self.comboBox_type.addItem("")
        self.comboBox_type.addItem("")
        self.comboBox_type.addItem("")
        self.comboBox_type.addItem("")
        self.comboBox_type.addItem("")
        self.frame_line_range = QtWidgets.QFrame(self.tuXiang)
        self.fra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值