Source code for CalibrationWizard
from PySide import QtGui
from PySide import QtCore
import sys
import os
import Voxel
from wizard.CalibrationInitPage import CalibrationInitPage
from wizard.CalibrationSelectPage import CalibrationSelectPage
from wizard.CalibrationLensPage import CalibrationLensPage
from wizard.CalibrationConclusionsPage import CalibrationConclusionPage
from wizard.CalibrationTemperaturePage import CalibrationTemperaturePage
# from CalibrationCommonPhase import CalibrationCommonPhasePage
from wizard.CalibrationPerPixelOffsetPage import CalibrationPerPixelOffsetPage
from wizard.CalibrationCommonPhase import CalibrationCommonPhasePage
from wizard.CalibrationNonLinearityPage import CalibrationNonLinearityPage
# from CalibrationDataCaptureDialog import CalibrationDataCaptureDialog
from wizard.CalibrationHDRCommonPhaseOffset import CalibrationHDRCommonPhasePage
from wizard.CalibrationCaptureData import CalibrationDataCapturePage
from wizard.CalibrationPage import CalibrationPage
from collections import OrderedDict
# import ConfigParser
[docs]class CalibrationWizard (QtGui.QWizard):
""" Run this file to start the wizard
This file contains the main code which runs the wizard. Includes all calibrations and all calibration pages
"""
def __init__(self):
super (CalibrationWizard, self).__init__()
# self.depthCamera = Voxel.DepthCamera()
self.cameraSystem = Voxel.CameraSystem()
self.devices = self.cameraSystem.scan()
if self.devices:
self.depthCamera = self.cameraSystem.connect(self.devices[0])
else:
self.depthCamera = None
ret, self.profilePath = Voxel.Configuration().getLocalPath('profiles')
self.configPath = os.getcwd() + os.sep + '..'
# self.editIndex = editIndex
self.setMinimumHeight(600)
self.setMinimumWidth(400)
self.setWizardStyle(QtGui.QWizard.ModernStyle)
self.setWindowTitle('Calibration Wizard')
self.addPage (CalibrationInitPage(self))
self.addPage(CalibrationSelectPage(self))
self.profileName = None
self.calibs = OrderedDict()
self.paths = {}
self.dataCapture = []
self.pages = {}
self.calibParams = {}
self.chipset = None
self.previousConfiguration = []
self.previousConfigurations = {}
self.calibPages = [
('lens', CalibrationLensPage(self)),
('capture', CalibrationDataCapturePage(self)),
('nonLinearity', CalibrationNonLinearityPage(self)),
('temperature', CalibrationTemperaturePage(self)),
('commonPhase', CalibrationCommonPhasePage(self)),
('hdrCommonPhase', CalibrationHDRCommonPhasePage(self)),
('perPixel', CalibrationPerPixelOffsetPage(self))
]
for name, page in self.calibPages:
self.addCalibrationPage(name, page)
self.addPage(CalibrationConclusionPage(self))
[docs] def addCalibrationPage(self, name, page):
self.pages[name] = page
self.addPage(page)
[docs] def setPreviousConfiguration(self, id):
c = self.depthCamera.configFile.getCameraProfile(id)
if not c:
QtGui.QMessageBox.critical(self, 'Calibration Wizard', 'Could not get configuration for camera profile "' + self.depthCamera.getCurrentCameraProfileID() + '"')
return
self.previousConfiguration = Voxel.ConfigurationFile(c)
self.previousProfileID = self.depthCamera.getCurrentCameraProfileID()
[docs] def nextId(self):
id = self.currentId() + 1
nextPage = self.page(id)
if not nextPage:
return -1
if not isinstance(nextPage, CalibrationPage):
return id
while nextPage and not nextPage.doShow:
id = id + 1
nextPage = self.page(id)
if not isinstance(nextPage, CalibrationPage):
return id
if not nextPage:
return -1
else:
return id
[docs] def close(self, *args, **kwargs):
if self.depthCamera:
self.depthCamera.stop()
a = QtGui.QApplication(sys.argv)
app = CalibrationWizard()
app.show()
a.exec_()