def makeSavenames(self): folder = self.folderEdit.text() if not os.path.exists(folder): os.mkdir(folder) if self.nCameras == 1: self.savenames[0] = (os.path.join(folder, self.getFileName()) + '_rec') self.savenames[0] = guitools.getUniqueName(self.savenames[0]) else: nameRoot = os.path.join(folder, self.getFileName()) for i in range(0, self.nCameras): ind = np.mod(self.main.currCamIdx + i, 2) # Sets name for final output file self.savenames[ind] = nameRoot + '_rec_cam' + str(ind + 1) # If same filename exists it is appended by (1) or (2) etc. self.savenames[ind] = guitools.getUniqueName( self.savenames[ind])
def startRecording(self): if self.recButton.isChecked(): ret = QtGui.QMessageBox.Yes if self.filesize > 1500000000: # Checks if estimated file size is dangourusly large, > 1,5GB-. ret = self.filesizewar.exec_() folder = self.folderEdit.text() if os.path.exists(folder) and ret == QtGui.QMessageBox.Yes: self.writable = False # Sets Recording widget to not be writable during recording. self.readyToRecord = False self.recButton.setEnabled(True) self.recButton.setText('STOP') self.main.tree.writable = False # Sets camera parameters to not be writable during recording. self.main.liveviewButton.setEnabled(False) # self.main.liveviewStop() # Stops liveview from updating self.savename = (os.path.join(folder, self.getFileName()) + '_rec.hdf5' ) # Sets name for final output file self.savename = guitools.getUniqueName( self.savename ) # If same filename exists it is appended by (1) or (2) etc. self.startTime = ptime.time( ) # Saves the time when started to calculate remaining time. self.worker = RecWorker( self.main.orcaflash, self.getRecTime(), self.main.shape, self.main. lvworker, #Creates an instance of RecWorker class. self.main.RealExpPar, self.savename, self.dataname, self.getAttrs()) self.worker.updateSignal.connect( self.updateGUI ) # Connects the updatesignal that is continously emitted from recworker to updateGUI function. self.worker.doneSignal.connect( self.endRecording ) # Connects the donesignal emitted from recworker to endrecording function. self.recordingThread = QtCore.QThread() # Creates a new thread self.worker.moveToThread( self.recordingThread ) # moves the worker object to this thread. self.recordingThread.started.connect(self.worker.start) self.recordingThread.start() else: self.recButton.setChecked(False) self.folderWarning() else: self.worker.pressed = False
def snapHDF(self): folder = self.folderEdit.text() if not os.path.exists(folder): os.mkdir(folder) image = self.main.image name = os.path.join(folder, self.getFileName()) savename = guitools.getUniqueName(name + '.hdf5') store_file = hdf.File(savename) store_file.create_dataset(name=self.dataname, data=image) for item in self.getAttrs(): if item[1] is not None: store_file[self.dataname].attrs[item[0]] = item[1] store_file.close()
def snapTIFF(self): folder = self.folderEdit.text() if os.path.exists(folder): # image = self.main.andor.most_recent_image16(self.main.shape) time.sleep(0.01) savename = (os.path.join(folder, self.getFileName()) + '_snap.tiff') savename = guitools.getUniqueName(savename) # tiff.imsave(savename, np.flipud(image.astype(np.uint16)), # description=self.dataname, software='Tormenta') tiff.imsave(savename, self.main.latest_image.astype(np.uint16), description=self.dataname, software='Tormenta') guitools.attrsToTxt(os.path.splitext(savename)[0], self.getAttrs()) else: self.folderWarning()
def snapHDF(self): folder = self.folderEdit.text() if os.path.exists(folder): # image = self.main.andor.most_recent_image16(self.main.shape) image = self.main.image name = os.path.join(folder, self.getFileName()) savename = guitools.getUniqueName(name + '.hdf5') store_file = hdf.File(savename) store_file.create_dataset(name=self.dataname, data=image) for item in self.getAttrs(): if item[1] is not None: store_file[self.dataname].attrs[item[0]] = item[1] store_file.close() else: self.folderWarning()
def snapTIFF(self): folder = self.folderEdit.text() if not os.path.exists(folder): os.mkdir(folder) time.sleep(0.01) savename = (os.path.join(folder, self.getFileName()) + '_snap.tiff') savename = guitools.getUniqueName(savename) image = self.main.latest_images[self.main.currCamIdx].astype(np.uint16) tiff.imsave(savename, image, description=self.dataname, software='Tempesta', imagej=True, resolution=(1 / self.main.umxpx, 1 / self.main.umxpx), metadata={ 'spacing': 1, 'unit': 'um' }) guitools.attrsToTxt(os.path.splitext(savename)[0], self.getAttrs())