Voxel Calibration Wizard

Source code for wizard.CalibrationPerPixelOffsetPage

from PySide import QtGui, QtCore
from calibration.PerPixelOffset import perPixelOffset
from CalibrationPage import CalibrationPage
[docs]class CalibrationPerPixelOffsetPage(CalibrationPage): def __init__(self, calibrationWizard): super (CalibrationPerPixelOffsetPage, self).__init__() self.calibrationWizard = calibrationWizard self.calibrated = False self.setTitle('Per Pixel Offset Calibration') self.setSubTitle('Choose the per pixel off set file for calibration') self.mainLayout = QtGui.QVBoxLayout(self)
[docs] def initializePage(self): self.layout = QtGui.QVBoxLayout() hlayout = QtGui.QHBoxLayout() hlayout.addStretch() self.button = QtGui.QPushButton('Select VXL file') hlayout.addWidget(self.button) hlayout.addStretch() self.layout.addLayout(hlayout) self.line = QtGui.QLineEdit() self.line.setEnabled(False) self.line.hide() self.layout.addWidget(self.line) self.button.clicked.connect(self.selectFileDialog) self.calibrateButton = QtGui.QPushButton('Calibrate') self.calibrateButton.setDisabled(True) hlayout = QtGui.QHBoxLayout() hlayout.addStretch() hlayout.addWidget(self.calibrateButton) hlayout.addStretch() self.layout.addLayout(hlayout) self.calibrateButton.pressed.connect(self.calibrate) if 'flatWall' in self.calibrationWizard.paths: self.line.setText(self.calibrationWizard.paths['flatWall']) self.fileName = self.calibrationWizard.paths['flatWall'] self.line.show() self.calibrateButton.setEnabled(True) self.label = QtGui.QLabel() self.layout.addWidget(self.label) self.mainLayout.addLayout(self.layout)
[docs] def cleanupPage(self, *args, **kwargs): self.clearLayout(self.layout)
[docs] def selectFileDialog(self): name, _ = QtGui.QFileDialog.getOpenFileName(self, 'Select VXL file', filter = 'VXL files (*.vxl)') # name, filter = QtGui.QFileDialog.getOpenFileName(self, 'Select CSV File', filter = '*.csv (CSV Files)') if name: self.fileName = str(name) # print self.fileName.type self.calibrationWizard.paths['flatWall'] = self.fileName self.line.setText(self.fileName) self.line.show() self.calibrateButton.setEnabled(True)
[docs] def calibrate(self): self.calibrateButton.setDisabled(True) self.label.setText("Calibrating ...") boo, text, rows, cols = perPixelOffset(self.fileName, None, self.calibrationWizard.profileName) if boo: self.calibrated = True self.label.setText("Calibration Complete \n Successfully saved the phase offsets to %s"%(text)) self.calibrateButton.setEnabled(True) self.calibrationWizard.calibParams['phasecorrection'] = 'file:'+ text + '.bin' self.completeChanged.emit() else: self.label.setText("Could not complete calibration. Try with a different file") self.calibrateButton.setEnabled(True)