VideoSpeedTest.py : Add numba checkbox

This commit is contained in:
KIU Shueng Chuan 2021-05-07 15:35:27 +08:00
parent bfc63bb730
commit 09ce81655d
6 changed files with 47 additions and 5 deletions

View File

@ -31,6 +31,13 @@ except ImportError:
cp = None cp = None
_has_cupy = False _has_cupy = False
try:
import numba
_has_numba = True
except ImportError:
numba = None
_has_numba = False
try: try:
from pyqtgraph.widgets.RawImageWidget import RawImageGLWidget from pyqtgraph.widgets.RawImageWidget import RawImageGLWidget
except ImportError: except ImportError:
@ -71,6 +78,8 @@ else:
# read in CLI args # read in CLI args
ui.cudaCheck.setChecked(args.cuda and _has_cupy) ui.cudaCheck.setChecked(args.cuda and _has_cupy)
ui.cudaCheck.setEnabled(_has_cupy) ui.cudaCheck.setEnabled(_has_cupy)
ui.numbaCheck.setChecked(_has_numba and pg.getConfigOption("useNumba"))
ui.numbaCheck.setEnabled(_has_numba)
ui.framesSpin.setValue(args.frames) ui.framesSpin.setValue(args.frames)
ui.widthSpin.setValue(args.size[0]) ui.widthSpin.setValue(args.size[0])
ui.heightSpin.setValue(args.size[1]) ui.heightSpin.setValue(args.size[1])
@ -216,6 +225,11 @@ def noticeCudaCheck():
xp = np xp = np
mkData() mkData()
def noticeNumbaCheck():
pg.setConfigOption('useNumba', _has_numba and ui.numbaCheck.isChecked())
mkData() mkData()
@ -229,6 +243,7 @@ ui.widthSpin.valueChanged.connect(updateSize)
ui.heightSpin.valueChanged.connect(updateSize) ui.heightSpin.valueChanged.connect(updateSize)
ui.framesSpin.valueChanged.connect(updateSize) ui.framesSpin.valueChanged.connect(updateSize)
ui.cudaCheck.toggled.connect(noticeCudaCheck) ui.cudaCheck.toggled.connect(noticeCudaCheck)
ui.numbaCheck.toggled.connect(noticeNumbaCheck)
ptr = 0 ptr = 0

View File

@ -22,6 +22,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="2" colspan="2">
<widget class="QCheckBox" name="numbaCheck">
<property name="text">
<string>Use Numba if available</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2"> <item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="downsampleCheck"> <widget class="QCheckBox" name="downsampleCheck">
<property name="text"> <property name="text">

View File

@ -1,8 +1,8 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'examples/VideoTemplate.ui' # Form implementation generated from reading ui file '.\VideoTemplate.ui'
# #
# Created by: PyQt5 UI code generator 5.15.1 # Created by: PyQt5 UI code generator 5.15.4
# #
# WARNING: Any manual changes made to this file will be lost when pyuic5 is # WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
@ -22,6 +22,9 @@ class Ui_MainWindow(object):
self.cudaCheck = QtWidgets.QCheckBox(self.centralwidget) self.cudaCheck = QtWidgets.QCheckBox(self.centralwidget)
self.cudaCheck.setObjectName("cudaCheck") self.cudaCheck.setObjectName("cudaCheck")
self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2) self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2)
self.numbaCheck = QtWidgets.QCheckBox(self.centralwidget)
self.numbaCheck.setObjectName("numbaCheck")
self.gridLayout_2.addWidget(self.numbaCheck, 9, 2, 1, 2)
self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget) self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget)
self.downsampleCheck.setObjectName("downsampleCheck") self.downsampleCheck.setObjectName("downsampleCheck")
self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2) self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2)
@ -183,6 +186,7 @@ class Ui_MainWindow(object):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.cudaCheck.setText(_translate("MainWindow", "Use CUDA (GPU) if available")) self.cudaCheck.setText(_translate("MainWindow", "Use CUDA (GPU) if available"))
self.numbaCheck.setText(_translate("MainWindow", "Use Numba if available"))
self.downsampleCheck.setText(_translate("MainWindow", "Auto downsample")) self.downsampleCheck.setText(_translate("MainWindow", "Auto downsample"))
self.scaleCheck.setText(_translate("MainWindow", "Scale Data")) self.scaleCheck.setText(_translate("MainWindow", "Scale Data"))
self.rawRadio.setText(_translate("MainWindow", "RawImageWidget")) self.rawRadio.setText(_translate("MainWindow", "RawImageWidget"))

View File

@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'VideoTemplate.ui' # Form implementation generated from reading ui file '.\VideoTemplate.ui'
# #
# Created by: PyQt6 UI code generator 6.0.0 # Created by: PyQt6 UI code generator 6.0.3
# #
# WARNING: Any manual changes made to this file will be lost when pyuic6 is # WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing. # run again. Do not edit this file unless you know what you are doing.
@ -20,6 +20,9 @@ class Ui_MainWindow(object):
self.cudaCheck = QtWidgets.QCheckBox(self.centralwidget) self.cudaCheck = QtWidgets.QCheckBox(self.centralwidget)
self.cudaCheck.setObjectName("cudaCheck") self.cudaCheck.setObjectName("cudaCheck")
self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2) self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2)
self.numbaCheck = QtWidgets.QCheckBox(self.centralwidget)
self.numbaCheck.setObjectName("numbaCheck")
self.gridLayout_2.addWidget(self.numbaCheck, 9, 2, 1, 2)
self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget) self.downsampleCheck = QtWidgets.QCheckBox(self.centralwidget)
self.downsampleCheck.setObjectName("downsampleCheck") self.downsampleCheck.setObjectName("downsampleCheck")
self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2) self.gridLayout_2.addWidget(self.downsampleCheck, 8, 0, 1, 2)
@ -181,6 +184,7 @@ class Ui_MainWindow(object):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.cudaCheck.setText(_translate("MainWindow", "Use CUDA (GPU) if available")) self.cudaCheck.setText(_translate("MainWindow", "Use CUDA (GPU) if available"))
self.numbaCheck.setText(_translate("MainWindow", "Use Numba if available"))
self.downsampleCheck.setText(_translate("MainWindow", "Auto downsample")) self.downsampleCheck.setText(_translate("MainWindow", "Auto downsample"))
self.scaleCheck.setText(_translate("MainWindow", "Scale Data")) self.scaleCheck.setText(_translate("MainWindow", "Scale Data"))
self.rawRadio.setText(_translate("MainWindow", "RawImageWidget")) self.rawRadio.setText(_translate("MainWindow", "RawImageWidget"))

View File

@ -32,6 +32,11 @@ class Ui_MainWindow(object):
self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2) self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2)
self.numbaCheck = QCheckBox(self.centralwidget)
self.numbaCheck.setObjectName(u"numbaCheck")
self.gridLayout_2.addWidget(self.numbaCheck, 9, 2, 1, 2)
self.downsampleCheck = QCheckBox(self.centralwidget) self.downsampleCheck = QCheckBox(self.centralwidget)
self.downsampleCheck.setObjectName(u"downsampleCheck") self.downsampleCheck.setObjectName(u"downsampleCheck")
@ -264,6 +269,7 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None)) MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.cudaCheck.setText(QCoreApplication.translate("MainWindow", u"Use CUDA (GPU) if available", None)) self.cudaCheck.setText(QCoreApplication.translate("MainWindow", u"Use CUDA (GPU) if available", None))
self.numbaCheck.setText(QCoreApplication.translate("MainWindow", u"Use Numba if available", None))
self.downsampleCheck.setText(QCoreApplication.translate("MainWindow", u"Auto downsample", None)) self.downsampleCheck.setText(QCoreApplication.translate("MainWindow", u"Auto downsample", None))
self.scaleCheck.setText(QCoreApplication.translate("MainWindow", u"Scale Data", None)) self.scaleCheck.setText(QCoreApplication.translate("MainWindow", u"Scale Data", None))
self.rawRadio.setText(QCoreApplication.translate("MainWindow", u"RawImageWidget", None)) self.rawRadio.setText(QCoreApplication.translate("MainWindow", u"RawImageWidget", None))

View File

@ -3,7 +3,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'VideoTemplate.ui' ## Form generated from reading UI file 'VideoTemplate.ui'
## ##
## Created by: Qt User Interface Compiler version 6.0.0 ## Created by: Qt User Interface Compiler version 6.0.3
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################
@ -32,6 +32,11 @@ class Ui_MainWindow(object):
self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2) self.gridLayout_2.addWidget(self.cudaCheck, 9, 0, 1, 2)
self.numbaCheck = QCheckBox(self.centralwidget)
self.numbaCheck.setObjectName(u"numbaCheck")
self.gridLayout_2.addWidget(self.numbaCheck, 9, 2, 1, 2)
self.downsampleCheck = QCheckBox(self.centralwidget) self.downsampleCheck = QCheckBox(self.centralwidget)
self.downsampleCheck.setObjectName(u"downsampleCheck") self.downsampleCheck.setObjectName(u"downsampleCheck")
@ -264,6 +269,7 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow): def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None)) MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.cudaCheck.setText(QCoreApplication.translate("MainWindow", u"Use CUDA (GPU) if available", None)) self.cudaCheck.setText(QCoreApplication.translate("MainWindow", u"Use CUDA (GPU) if available", None))
self.numbaCheck.setText(QCoreApplication.translate("MainWindow", u"Use Numba if available", None))
self.downsampleCheck.setText(QCoreApplication.translate("MainWindow", u"Auto downsample", None)) self.downsampleCheck.setText(QCoreApplication.translate("MainWindow", u"Auto downsample", None))
self.scaleCheck.setText(QCoreApplication.translate("MainWindow", u"Scale Data", None)) self.scaleCheck.setText(QCoreApplication.translate("MainWindow", u"Scale Data", None))
self.rawRadio.setText(QCoreApplication.translate("MainWindow", u"RawImageWidget", None)) self.rawRadio.setText(QCoreApplication.translate("MainWindow", u"RawImageWidget", None))