def onOpenImageDir(self): self.cbar.clearContours() self.viewer.clearRects() self.viewer.clearPolygons() idir = self.imageDir.text() ofile = self.dataFile.text() if isdir(idir): path = dirname(idir) elif isfile(ofile): path = dirname(ofile) else: path = expanduser("~") # TODO use getOpenFileNames instead idir = QFileDialog.getExistingDirectory(self, "Select an image directory", path) # cancel button if not idir: return self.imageDir.setText(idir) scanner = FileScanner(self.structType.currentText(), idir) self._files = scanner() if not self._files: QMessageBox.warning(self, "Error", "No files found") return self.dirinfo.setText("%d images found" % len(self._files)) proc = LsmProcessor(self._files.keys()[0], self.segdlg.segmentationParams(), self.cbar.checkedChannels(), treatment=self._files.values()[0]) self.metadata = proc.metadata self.metadata.n_images = len(self._files) images = list(proc.iterQImages()) props = list(proc.iterprops()) self.cbar.addChannels(len(images)) self.cbar.setImages(images, list(proc.iterprops())) state = self.segdlg.blockSignals(True) self.segdlg.setRegions(self.cbar.allChannels(), props) self.segdlg.setMaxZSlice(self.metadata.n_zslices - 1) self.segdlg.blockSignals(state) self.slider.setRange(0, self.metadata.n_images - 1) self.slider.setValue(0) self.showObjects()
def __init__(self, *args, **kw): super(ImportDialog, self).__init__(*args, **kw) loadUI(splitext(__file__)[0] + '.ui', self) for name, scn in FileScanner.iterclasses(): self.structType.addItem(scn.icon(), name) self.structType.setIconSize(QtCore.QSize(48, 24)) self.metadata = None self._files = None self.progressBar.hide() self.segdlg = SegmentationDialog(self) self.segdlg.hide() self.thread = AtThread(self) self.viewer.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) self.cbar = ChannelBar(self, self.viewer) self.cbox.addWidget(self.cbar) self.cbar.newPixmap.connect(self.viewer.showPixmap, Qt.DirectConnection) self.cbar.newContourImage.connect(self.viewer.contourImage) self.dataFileBtn.clicked.connect(self.onOpenOutFile) self.imageDirBtn.clicked.connect(self.onOpenImageDir) self.startBtn.clicked.connect(self.raw2hdf) self.closeBtn.clicked.connect(self.close) self.closeBtn.clicked.connect(self.cbar.clear) self.segmentationBtn.clicked.connect(self.onSegmentationBtn) self.slider.newValue.connect(self.showObjects) self.slider.valueChanged.connect(self.showImage) self.slider.sliderReleased.connect(self.showObjects) self.slider.sliderPressed.connect(self.cbar.clearContours) self.contoursCb.stateChanged.connect(self.onContours) self.showBBoxes.stateChanged.connect(self.onBBoxes) self.showBBoxes.stateChanged.connect(self.showObjects) self.segdlg.paramsChanged.connect(self.showObjects) self.segdlg.refreshBtn.clicked.connect(self.showObjects) self.segdlg.imageUpdate.connect(self.showImage) self.segdlg.activateChannels.connect(self.cbar.activateChannels) self.segdlg.changeColor.connect(self.cbar.setColor) self.nextBtn.clicked.connect(self.onNextBtn) self.prevBtn.clicked.connect(self.onPrevBtn)
def __init__(self, *args, **kw): super(ImportDialog, self).__init__(*args, **kw) loadUI(splitext(__file__)[0]+'.ui', self) for name, scn in FileScanner.iterclasses(): self.structType.addItem(scn.icon(), name) self.structType.setIconSize(QtCore.QSize(48, 24)) self.metadata = None self._files = None self.progressBar.hide() self.segdlg = SegmentationDialog(self) self.segdlg.hide() self.thread = AtThread(self) self.viewer.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) self.cbar = ChannelBar(self, self.viewer) self.cbox.addWidget(self.cbar) self.cbar.newPixmap.connect(self.viewer.showPixmap, Qt.DirectConnection) self.cbar.newContourImage.connect(self.viewer.contourImage) self.dataFileBtn.clicked.connect(self.onOpenOutFile) self.imageDirBtn.clicked.connect(self.onOpenImageDir) self.startBtn.clicked.connect(self.raw2hdf) self.closeBtn.clicked.connect(self.close) self.closeBtn.clicked.connect(self.cbar.clear) self.segmentationBtn.clicked.connect(self.onSegmentationBtn) self.slider.newValue.connect(self.showObjects) self.slider.valueChanged.connect(self.showImage) self.slider.sliderReleased.connect(self.showObjects) self.slider.sliderPressed.connect(self.cbar.clearContours) self.contoursCb.stateChanged.connect(self.onContours) self.showBBoxes.stateChanged.connect(self.onBBoxes) self.showBBoxes.stateChanged.connect(self.showObjects) self.segdlg.paramsChanged.connect(self.showObjects) self.segdlg.refreshBtn.clicked.connect(self.showObjects) self.segdlg.imageUpdate.connect(self.showImage) self.segdlg.activateChannels.connect(self.cbar.activateChannels) self.segdlg.changeColor.connect(self.cbar.setColor) self.nextBtn.clicked.connect(self.onNextBtn) self.prevBtn.clicked.connect(self.onPrevBtn)
def __init__(self, *args, **kw): super(ImportDialog, self).__init__(*args, **kw) loadUI(splitext(__file__)[0] + ".ui", self) self.zsliceMethod.addItems(ZProject.names()) self.zsliceMethod.currentIndexChanged.connect(self.onZSliceMethodChanged) self.pool = None self._pool_running = False for name, scn in FileScanner.iterclasses(): self.structType.addItem(scn.icon(), name) self.structType.setIconSize(QtCore.QSize(48, 24)) self._files = None self._regex = None self.progressBar.hide() self.segdlg = SegmentationDialog(self) self.segdlg.hide() self.zslice.valueChanged.connect(self.segdlg.setZSlice) self.segdlg.zslice.valueChanged.connect(self.zslice.setValue) self.zsliceMethod.currentIndexChanged.connect(self.segdlg.zsliceMethod.setCurrentIndex) self.segdlg.zsliceMethod.currentIndexChanged.connect(self.zsliceMethod.setCurrentIndex) self.viewer.setSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) self.cbar = ChannelBar(self, self.viewer) self.cbox.addWidget(self.cbar) self.cbar.newPixmap.connect(self.viewer.showPixmap, Qt.DirectConnection) self.cbar.newContourImage.connect(self.viewer.contourImage) self.cbar.colorsChanged.connect(self.segdlg.updateRowColors) self.dataFileBtn.clicked.connect(self.onOpenOutFile) self.imageDirBtn.clicked.connect(self.onOpenImageDir) self.startBtn.clicked.connect(self.raw2hdf) self.closeBtn.clicked.connect(self.close) self.closeBtn.clicked.connect(self.cbar.clear) self.segmentationBtn.clicked.connect(self.onSegmentationBtn) self.slider.newValue.connect(self.showObjects) self.slider.valueChanged.connect(self.showImage) self.slider.sliderReleased.connect(self.showObjects) self.slider.sliderPressed.connect(self.cbar.clearContours) self.contoursCb.stateChanged.connect(self.onContours) self.showBBoxes.stateChanged.connect(self.onBBoxes) self.showBBoxes.stateChanged.connect(self.showObjects) self.segdlg.paramsChanged.connect(self.showObjects) self.segdlg.refreshBtn.clicked.connect(self.showObjects) self.segdlg.imageUpdate.connect(self.showImage) self.segdlg.activateChannels.connect(self.cbar.activateChannels) self.segdlg.changeColor.connect(self.cbar.setColor) self.nextBtn.clicked.connect(self.onNextBtn) self.prevBtn.clicked.connect(self.onPrevBtn) self.reloadBtn.clicked.connect(self.onReloadBtn) self.setProgressRange.connect(self.progressBar.setRange) self.setProgress.connect(self.progressBar.setValue, Qt.DirectConnection)