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)