Example #1
0
    def __init__(self, file_, *args, **kw):
        super(LoadClassifierDialog, self).__init__(*args, **kw)
        uifile = splitext(__file__)[0] + ".ui"
        loadUI(uifile, self)
        self.setResult(-1)

        self._file = file_
        self.descriptions = dict()
        self.progressBar.hide()

        self.loadFileInfo(file_)
        self.classifier_name.currentIndexChanged[str].connect(self.onClassifierChanged)
Example #2
0
    def __init__(self, *args, **kw):
        super(SeededMaskWidget, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.norm.setText("Intesity Norm. ")

        self.mtype.addItems(SeededMask.masks())
        self.mtype.currentTextChanged.connect(
            self.onMtypeChanged)
        self.onMtypeChanged(self.mtype.currentText())

        self.inner.valueChanged.connect(self.onInnerValueChanged)
        self.outer.valueChanged.connect(self.onOuterValueChanged)
Example #3
0
    def __init__(self, file_, *args, **kw):
        super(LoadClassifierDialog, self).__init__(*args, **kw)
        uifile = splitext(__file__)[0] + ".ui"
        loadUI(uifile, self)
        self.setResult(-1)

        self._file = file_
        self.descriptions = dict()
        self.progressBar.hide()

        self.loadFileInfo(file_)
        self.classifier_name.currentIndexChanged[str].connect(
            self.onClassifierChanged)
Example #4
0
    def __init__(self, classifier, labels, sample_info, description,
                 *args, **kw):
        super(SaveClassifierDialog, self).__init__(*args, **kw)
        uifile = splitext(__file__)[0] + ".ui"
        loadUI(uifile, self)

        self._path = None
        self._description.setPlainText(description)
        self.classifier = classifier
        self.labels = labels
        self.sinfo = sample_info
        self.name = classifier.name.replace(" ", "_").lower()
        self._name.selectAll()
Example #5
0
    def __init__(self, *args, **kw):
        super(AtPreferencesDialog, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0] + '.ui', self)
        self.setWindowTitle("Preferences")
        self._compopts_old = dict()

        self.loadSettings()

        self.accepted.connect(self.saveSettings)

        self.hdf_compression.currentIndexChanged[str].connect(
            self.updateCompressionOptions)
        self.hdf_compopts.currentIndexChanged[str].connect(
            self.compoptsUpdated)
Example #6
0
    def __init__(self, *args, **kw):
        super(AtPreferencesDialog, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.setWindowTitle("Preferences")
        self._compopts_old = dict()

        self.loadSettings()

        self.accepted.connect(self.saveSettings)

        self.hdf_compression.currentIndexChanged[str].connect(
            self.updateCompressionOptions)
        self.hdf_compopts.currentIndexChanged[str].connect(
            self.compoptsUpdated)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    def __init__(self, *args, **kw):
        super(SegmentationDialog, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.setWindowFlags(Qt.Tool)
        # row count (rowCount from gridlayout is not reliable!)
        self._rcount = 1

        self.pchannel.currentIndexChanged[str].connect(self.onChannelChanged)
        self.loadBtn.clicked.connect(self.onLoadBtn)
        self.saveBtn.clicked.connect(self.onSaveBtn)
        self.watershed.stateChanged.connect(self.emitParamsChanged)

        self.zsliceMethod.addItems(ZProject.names())
        self.zsliceMethod.currentIndexChanged.connect(
            self.onZSliceMethodChanged)
        self.zslice.valueChanged.connect(self.emitImageUpdate)
Example #10
0
    def __init__(self, *args, **kw):
        super(AtSortWidget, self).__init__(*args, **kw)
        uifile = join(dirname(__file__), self.__class__.__name__ + ".ui")
        loadUI(uifile, self)

        self.treeview.activated.connect(self.onActivated)

        self.sortAlgorithm.addItems(Sorter.sorters())

        self.model = AtSorterItemModel(self)
        self.treeview.setModel(self.model)
        self.setupToolBar()

        self.startSorting.connect(
            lambda: self.tileview.reorder(force_update=True))

        self._channels = tuple()
Example #11
0
    def __init__(self, *args, **kw):
        super(AtSortWidget, self).__init__(*args, **kw)
        uifile = join(dirname(__file__), self.__class__.__name__ + ".ui")
        loadUI(uifile, self)

        self.treeview.activated.connect(self.onActivated)

        self.sortAlgorithm.addItems(Sorter.sorters())

        self.model = AtSorterItemModel(self)
        self.treeview.setModel(self.model)
        self.setupToolBar()

        self.startSorting.connect(
            lambda: self.tileview.reorder(force_update=True))

        self._channels = tuple()
Example #12
0
    def __init__(self, *args, **kw):
        super(AtFeatureSelectionDlg, self).__init__(*args, **kw)
        uifile = splitext(__file__)[0] + ".ui"
        loadUI(uifile, self)

        self.setWindowFlags(Qt.Window)

        self.regexLbl.setBuddy(self.regex)
        self.regex.textChanged.connect(self.filterChanged)

        self.proxyModel = AtSortFilterProxyModel()
        self.proxyModel.setDynamicSortFilter(False)
        self.view.setModel(self.proxyModel)
        self.model = AtFeatureModel(self)
        self.setSourceModel(self.model)
        self.selectAll.stateChanged.connect(self.toggleAll)
        self.selectedOnly.stateChanged.connect(self.view.model().setStateFilter)
        self.selectionChanged.connect(self.setSelectionByName)
Example #13
0
    def __init__(self, items, classes, exclude_training_data=True, *args, **kw):
        super(BarGraph, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.setWindowTitle("Counts grouped by Treatment")
        self._exclude_td = exclude_training_data
        self._items = items

        counter = lambda: defaultdict(lambda: 0)
        treatments = defaultdict(counter)
        class_counts = dict()

        for item in self._items:
            if self._exclude_td and item.isTrainingSample():
                continue
            treatments[item.treatment][item.class_.name] += 1
            class_counts[item.class_.label] = item.class_.name

        self._plot(class_counts, treatments, classes)
Example #14
0
    def __init__(self, *args, **kw):
        super(AtAnnotationWidget, self).__init__(*args, **kw)
        uifile = join(dirname(__file__), self.__class__.__name__ + ".ui")
        loadUI(uifile, self)

        self._classifier_is_valid = False
        self._prediction_is_valid = False
        self._modified = True

        self.saveBtn.clicked.connect(self.onSave)
        self.loadBtn.clicked.connect(self.onLoadAnnotations)

        self._setupClassifiers()
        self.classifiers.currentIndexChanged.connect(
            self.classifierChanged)

        self.tileview.emitSelectedItems.connect(
            self.selectByHashes)
Example #15
0
    def __init__(self, files, *args, **kw):

        super(ImageDims, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)

        self.files = files

        self.example.setText("Example: %s" %basename(files[0].file))

        self.separator.returnPressed.connect(self.updateRegex)
        self.coord1.returnPressed.connect(self.updateRegex)
        self.coord2.returnPressed.connect(self.updateRegex)
        self.regex.returnPressed.connect(self.updateTree)

        self.coord1Cb.currentIndexChanged.connect(self.updateRegex)
        self.coord2Cb.currentIndexChanged.connect(self.updateRegex)
        self._restoreSettings()
        self.updateRegex()
Example #16
0
    def __init__(self, items, indices, classes, title="", exclude_training_data=True, *args, **kw):
        super(BoxPlot, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.setWindowTitle(title)
        self._exclude_td = exclude_training_data

        self._tabs = dict()
        self._items = items

        values = lambda: defaultdict(list)
        data = defaultdict(values)

        for ch, idx in indices.iteritems():
            for item in self._items:
                if self._exclude_td and item.isTrainingSample():
                    continue
                value = item.features[idx]
                data[item.treatment][item.class_.name].append(value)

            self._plot(cn.from_abreviation(ch), title, data, classes)
Example #17
0
    def __init__(self, *args, **kw):
        super(AtAnnotationWidget, self).__init__(*args, **kw)
        uifile = join(dirname(__file__), self.__class__.__name__ + ".ui")
        loadUI(uifile, self)

        self._classifier_is_valid = False

        self.saveBtn.clicked.connect(self.onSave)
        self.loadBtn.clicked.connect(self.onLoadAnnotations)

        self._setupClassifiers()
        self.classifiers.currentIndexChanged.connect(
            self.classifierChanged)

        self.removeBtn.clicked.connect(self.removeSelected)
        self.removeAllBtn.clicked.connect(self.removeAll)
        self.predictBtn.clicked.connect(self.onPredict)
        self.predictBtn.setText('Predict')

        self.tileview.emitSelectedItems.connect(
            self.selectByHashes)
Example #18
0
    def __init__(self, *args, **kw):
        super(AtPreferencesDialog, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.setWindowTitle("Preferences")
        self._compopts_old = dict()

        for name, value in BatchSizes.iteritems():
            self.batchsize.addItem(name, value)
        self.loadSettings()

        self.accepted.connect(self.saveSettings)

        validator = QtGui.QRegExpValidator(QtCore.QRegExp("^\d+(,\d+)*$"))

        self.haralickDist.setValidator(validator)
        self.granulometrySizes.setValidator(validator)

        self.hdf_compression.currentIndexChanged[str].connect(
            self.updateCompressionOptions)
        self.hdf_compopts.currentIndexChanged[str].connect(
            self.compoptsUpdated)
Example #19
0
    def __init__(self, parent, classifier, *args, **kw):
        super(CrossValidationDialog, self).__init__(parent=parent, *args, **kw)
        loadUI(splitext(__file__)[0] + '.ui', self)
        self.setWindowFlags(Qt.Window)

        self.classifier = classifier
        self._tabs = dict()

        self.applyBtn.clicked.connect(self.onApplyBtn)
        self.okBtn.clicked.connect(self.onOkBtn)

        self.crossValBtn.clicked.connect(self.onCrossValiation)
        self.gridSearchBtn.clicked.connect(self.onGridSearch)
        self.gridSearchFinished.connect(self.crossValidation)
        self.gridSearchFinished.connect(self.onApplyBtn)
        self.gridSearchFinished.connect(parent.predictionInvalid)
        self.requestDataUpdate.connect(self.updateData)

        self.features = None
        self.labels = None
        self.confusion_matrix = None
        self.onGridSearch()
Example #20
0
    def __init__(self, parent, classifier, *args, **kw):
        super(CrossValidationDialog, self).__init__(parent=parent, *args, **kw)
        loadUI(splitext(__file__)[0] + ".ui", self)
        self.setWindowFlags(Qt.Window)

        self.classifier = classifier
        self._tabs = dict()

        self.applyBtn.clicked.connect(self.onApplyBtn)
        self.okBtn.clicked.connect(self.onOkBtn)

        self.crossValBtn.clicked.connect(self.onCrossValiation)
        self.gridSearchBtn.clicked.connect(self.onGridSearch)
        self.gridSearchFinished.connect(self.crossValidation)
        self.gridSearchFinished.connect(self.onApplyBtn)
        self.gridSearchFinished.connect(parent.predictionInvalid)
        self.requestDataUpdate.connect(self.updateData)

        self.features = None
        self.labels = None
        self.confusion_matrix = None
        self.onGridSearch()
Example #21
0
    def __init__(self, parent, range_=(0, 256)):
        super(AtContrastSliderWidget, self).__init__(parent)
        loadUI(splitext(__file__)[0]+'.ui', self)
        self.settings = BaCCalculator(*range_)

        self.minimum.setRange(*range_)
        self.maximum.setRange(*range_)
        self.brightness.setRange(*range_)
        self.contrast.setRange(*range_)

        self.settings.valuesUpdated.connect(self.updateSliders)
        self.minMaxBtn.clicked.connect(self.settings.setImageToMinMax)
        self.resetBtn.clicked.connect(self.settings.reset)
        self.autoBtn.clicked.connect(self.settings.setAuto)
        self.autoBtn.setToolTip("Cuts of 1% of the histogram")

        self.minimum.valueChanged.connect(self.settings.setMinimum)
        self.maximum.valueChanged.connect(self.settings.setMaximum)
        self.contrast.valueChanged.connect(self.settings.setContrast)
        self.brightness.valueChanged.connect(self.settings.setBrightness)

        self.minimum.valueChanged.connect(self.valuesToolTip)
        self.maximum.valueChanged.connect(self.valuesToolTip)
        self.contrast.valueChanged.connect(self.valuesToolTip)
        self.brightness.valueChanged.connect(self.valuesToolTip)

        self.minimum.sliderReleased.connect(self.sliderReleased.emit)
        self.maximum.sliderReleased.connect(self.sliderReleased.emit)
        self.contrast.sliderReleased.connect(self.sliderReleased.emit)
        self.brightness.sliderReleased.connect(self.sliderReleased.emit)

        self.minMaxBtn.clicked.connect(self.buttonClicked.emit)
        self.resetBtn.clicked.connect(self.buttonClicked.emit)
        self.autoBtn.clicked.connect(self.buttonClicked.emit)

        self.buttonClicked.connect(self.valuesToolTip)
        self.updateSliders()
Example #22
0
 def __init__(self, *args, **kw):
     super(ExpansionWidget, self).__init__(*args, **kw)
     loadUI(join(dirname(__file__), "expansionregion.ui"), self)
Example #23
0
 def __init__(self, parent, *args, **kw):
     super(HoneyCombWidget, self).__init__(parent, *args, **kw)
     loadUI(splitext(__file__)[0]+'.ui', self)
Example #24
0
    def __init__(self, collections_file, *args, **kw):

        if not isfile(collections_file):
            collections_file = join("doc", basename(collections_file))
            collections_file = create_temporary_copy(collections_file)

        if not isfile(collections_file):
            raise IOError("%s file not found" % (collections_file))

        super(AtAssistant, self).__init__(*args, **kw)
        loadUI(join(dirname(__file__), "assistant.ui"), self)

        self.hengine = QtHelp.QHelpEngine(collections_file)
        self.hengine.setupData()
        self.hengine.registerDocumentation(
            collections_file.replace('.qhc', '.qch'))

        self.hengine.searchEngine().reindexDocumentation()
        self.hbrowser = AtHelpBrowser()
        self.hbrowser.setHelpEngine(self.hengine)
        self.setCentralWidget(self.hbrowser)
        self.hengine.contentWidget().linkActivated.connect(
            self.hbrowser.setSource)
        self._setupToolBar()

        self.queries = self.hengine.searchEngine().queryWidget()
        self.results = self.hengine.searchEngine().resultWidget()
        self.index = self.hengine.indexWidget()
        self.contents = self.hengine.contentWidget()

        self.tabifyDockWidget(self.contentDock, self.indexDock)
        self.tabifyDockWidget(self.contentDock, self.searchDock)
        self.searchDock.hide()

        # search dock (hidden)
        search = QtWidgets.QFrame(self)
        vbox = QtWidgets.QVBoxLayout(search)
        vbox.setContentsMargins(3, 3, 3, 3)
        vbox.addWidget(self.queries)
        vbox.addWidget(self.results)
        self.results.requestShowLink.connect(self.hbrowser.setSource)
        self.index.linkActivated.connect(self.hbrowser.setSource)
        self.queries.search.connect(self.search)

        # index dock
        index = QtWidgets.QFrame(self)
        filterEdit = AtLineEdit(self)
        vbox = QtWidgets.QVBoxLayout(index)
        vbox.setContentsMargins(3, 3, 3, 3)
        vbox.addWidget(QtWidgets.QLabel("Look for:"))
        vbox.addWidget(filterEdit)
        vbox.addWidget(self.index)
        filterEdit.textChanged.connect(self.filter)

        self.searchDock.setWidget(search)
        self.contentDock.setWidget(self.contents)
        self.indexDock.setWidget(index)

        self._restoreSettings()
        self.indexDock.show()
        self.contentDock.show()
Example #25
0
    def __init__(self, *args, **kw):
        super(SaveClassifierDialog, self).__init__(*args, **kw)
        uifile = splitext(__file__)[0] + ".ui"
        loadUI(uifile, self)

        self.pathBtn.clicked.connect(self.onPathBtn)
Example #26
0
    def __init__(self, collections_file, *args, **kw):


        if not isfile(collections_file):
            collections_file = join("doc", basename(collections_file))
            collections_file = create_temporary_copy(collections_file)

        if not isfile(collections_file):
            raise IOError("%s file not found" %(collections_file))

        super(AtAssistant, self).__init__(*args, **kw)
        loadUI(join(dirname(__file__), "assistant.ui"), self)

        self.hengine = QtHelp.QHelpEngine(collections_file)
        self.hengine.setupData()
        self.hengine.registerDocumentation(
            collections_file.replace('.qhc', '.qch'))

        self.hengine.searchEngine().reindexDocumentation()
        self.hbrowser = AtHelpBrowser()
        self.hbrowser.setHelpEngine(self.hengine)
        self.setCentralWidget(self.hbrowser)
        self.hengine.contentWidget().linkActivated.connect(
           self.hbrowser.setSource)
        self._setupToolBar()

        self.queries  = self.hengine.searchEngine().queryWidget()
        self.results = self.hengine.searchEngine().resultWidget()
        self.index = self.hengine.indexWidget()
        self.contents = self.hengine.contentWidget()

        self.tabifyDockWidget(self.contentDock, self.indexDock)
        self.tabifyDockWidget(self.contentDock, self.searchDock)
        self.searchDock.hide()

          # search dock (hidden)
        search = QtWidgets.QFrame(self)
        vbox = QtWidgets.QVBoxLayout(search)
        vbox.setContentsMargins(3, 3, 3, 3)
        vbox.addWidget(self.queries)
        vbox.addWidget(self.results)
        self.results.requestShowLink.connect(self.hbrowser.setSource)
        self.index.linkActivated.connect(self.hbrowser.setSource)
        self.queries.search.connect(self.search)

        # index dock
        index = QtWidgets.QFrame(self)
        filterEdit = AtLineEdit(self)
        vbox = QtWidgets.QVBoxLayout(index)
        vbox.setContentsMargins(3, 3, 3, 3)
        vbox.addWidget(QtWidgets.QLabel("Look for:"))
        vbox.addWidget(filterEdit)
        vbox.addWidget(self.index)
        filterEdit.textChanged.connect(self.filter)

        self.searchDock.setWidget(search)
        self.contentDock.setWidget(self.contents)
        self.indexDock.setWidget(index)

        self._restoreSettings()
        self.indexDock.show()
        self.contentDock.show()
Example #27
0
    def __init__(self, parent, *args, **kw):
        super(AdaptiveThresholdWidget, self).__init__(parent, *args, **kw)
        loadUI(splitext(__file__)[0] + ".ui", self)

        # controls that trigger interactive image update
        self.watershed.stateChanged.connect(parent.emitParamsChanged)
Example #28
0
    def __init__(self, file_=None, *args, **kw):
        super(AtMainWindow, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)

        self.setWindowTitle(version.appstr)
        self.setAcceptDrops(True)

        self.featuredlg = AtFeatureSelectionDlg(self)
        self.featuredlg.hide()

        self.loaderThread = AtThread(self)
        self.loader = AtLoader()
        self._lastdir = expanduser("~")

        try:
            self.assistant = AtAssistant(MANUAL)
            self.assistant.hide()
        except IOError:
            QMessageBox.information(self, "Information",
                                    "Sorry help files are not installed")

        self.setupToolbar()
        self.tileview = AtGraphicsView(
            parent=self,
            gsize=self.navToolBar.galsize)
        self.toolBar.valueChanged.connect(self.tileview.zoom)
        self.toolBar.classification.stateChanged.connect(
            self.tileview.toggleClassIndicators, Qt.QueuedConnection)
        self.toolBar.masking.stateChanged.connect(
            self.tileview.toggleMasks, Qt.QueuedConnection)
        self.toolBar.outline.stateChanged.connect(
            self.tileview.toggleOutlines, Qt.QueuedConnection)
        self.toolBar.description.stateChanged.connect(
            self.tileview.toggleDescription, Qt.QueuedConnection)

        self.setCentralWidget(self.tileview)
        self.setupDock()
        self.setupProgressBar()

        self.loader.fileOpened.connect(self.updateToolbars)
        self.loader.progressUpdate.connect(self.updateProgressBar)
        self.loader.itemLoaded.connect(self.tileview.addItem)
        self.abort.connect(self.loader.abort)
        self.actionNewFile.triggered.connect(self.newDataFile)
        self.actionOpenHdf.triggered.connect(self.onFileOpen)
        self.actionCloseHdf.triggered.connect(self.onFileClose)
        self.actionPreferences.triggered.connect(self.onPreferences)
        self.actionExportViewPanel.triggered.connect(self.saveImage)
        self.actionSaveData2Csv.triggered.connect(self.saveData2Csv)
        self.actionSaveCountingStats.triggered.connect(self.saveCountingStats)
        self.actionAboutQt.triggered.connect(self.onAboutQt)
        self.actionAboutAnnotationTool.triggered.connect(self.onAbout)
        self.actionFeatureSelection.triggered.connect(
            self.showFeatureDlg)
        self.actionHelpManual.triggered.connect(self.onHelpManual)
        self.actionShortcuts.triggered.connect(self.onHelpShortcuts)

        self.actionRefresh.triggered.connect(self.refresh)
        self.actionSelectAll.triggered.connect(
            self.tileview.actionSelectAll.trigger)
        self.actionInvertSelection.triggered.connect(
            self.tileview.actionInvertSelection.trigger)

        self.tileview.zoomChanged.connect(self.updateZoomFactor)

        self.featuredlg.selectionChanged.connect(
            self.annotation.predictionInvalid)

        self.loader.started.connect(self.onLoadingStarted)

        self.zoom = QtWidgets.QLabel('100%')
        self.statusbar.insertPermanentWidget(0, self.zoom)
        self.statusbar.insertPermanentWidget(1,
            QtWidgets.QLabel('Number of items:'))
        self.nitems = QtWidgets.QLabel('0')
        self.statusbar.insertPermanentWidget(2, self.nitems)

        self._restoreSettings()
        self.navToolBar.hide()
        self.show()
        if file_ is not None:
            self.loader.openFile(file_)
            self.loadItems()
Example #29
0
    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)
Example #30
0
File: main.py Project: rhoef/afw
    def __init__(self, file_=None, *args, **kw):
        super(AtMainWindow, self).__init__(*args, **kw)
        loadUI(splitext(__file__)[0]+'.ui', self)

        self.setWindowTitle(version.appstr)
        self.setAcceptDrops(True)

        self.featuredlg = AtFeatureSelectionDlg(self)
        self.featuredlg.hide()

        self.loaderThread = AtThread(self)
        self.loader = AtLoader()
        self._lastdir = expanduser("~")

        try:
            self.assistant = AtAssistant(MANUAL)
            self.assistant.hide()
        except IOError:
            QMessageBox.information(self, "Information",
                                    "Sorry help files are not installed")

        self.setupToolbar()
        self.tileview = AtGraphicsView(
            parent=self,
            gsize=self.navToolBar.galsize)
        self.toolBar.valueChanged.connect(self.tileview.zoom)
        self.toolBar.flagsChanged.connect(
            self.tileview.setViewFlags, Qt.QueuedConnection)

        self.setCentralWidget(self.tileview)
        self.setupDock()
        self.setupProgressBar()

        self.loader.fileOpened.connect(self.updateToolbars)
        self.loader.progressUpdate.connect(self.updateProgressBar)
        self.loader.itemCountChanged.connect(self.batchToolBar.setItemCount)
        self.loader.itemLoaded.connect(self.tileview.addItem)
        self.abort.connect(self.loader.abort)
        self.actionNewFile.triggered.connect(self.newDataFile)
        self.actionOpenHdf.triggered.connect(self.onFileOpen)
        self.actionCloseHdf.triggered.connect(self.onFileClose)
        self.actionPreferences.triggered.connect(self.onPreferences)

        # Data Export
        self.actionExportViewPanel.triggered.connect(self.saveImage)
        self.actionSaveData2Csv.triggered.connect(self.saveData2Csv)
        self.actionSaveCountingStats.triggered.connect(self.saveCountingStats)

        # Plots
        self.actionGroupedByClass.triggered.connect(self.plotGroupedByClass)
        self.actionGroupedByTreatment.triggered.connect(
            self.plotGroupedByTreatment)
        self.actionIntensity.triggered.connect(self.plotIntesity)
        self.actionSize.triggered.connect(self.plotSize)
        self.actionStdDev.triggered.connect(self.plotStdDev)
        self.actionPlotAll.triggered.connect(self.plotAll)

        self.actionAboutQt.triggered.connect(self.onAboutQt)
        self.actionAboutAnnotationTool.triggered.connect(self.onAbout)
        self.actionFeatureSelection.triggered.connect(
            self.showFeatureDlg)
        self.actionHelpManual.triggered.connect(self.onHelpManual)
        self.actionShortcuts.triggered.connect(self.onHelpShortcuts)
        self.actionGettingStarted.triggered.connect(self.onHelpGettingStarted)

        self.actionRefresh.triggered.connect(self.refresh)
        self.actionSelectAll.triggered.connect(
            self.tileview.actionSelectAll.trigger)
        self.actionInvertSelection.triggered.connect(
            self.tileview.actionInvertSelection.trigger)
        self.actionSelectByTreatment.triggered.connect(self.selectByTreatment)

        self.tileview.zoomChanged.connect(self.updateZoomFactor)
        self.tileview.quickSort.connect(self.sortToolBar.quickSortBtn.toggle)
        self.tileview.quickSort.connect(self.onQuickSort)

        self.featuredlg.selectionChanged.connect(
            self.annotation.predictionInvalid)

        self.loader.started.connect(self.onLoadingStarted)

        self.zoom = QtWidgets.QLabel('100%')
        self.statusbar.insertPermanentWidget(0, self.zoom)
        self.statusbar.insertPermanentWidget(1,
            QtWidgets.QLabel('Number of items:'))
        self.nitems = QtWidgets.QLabel('0')
        self.statusbar.insertPermanentWidget(2, self.nitems)

        self._restoreSettings()
        self.navToolBar.hide()
        self.show()

        if file_ is not None:
            self.loader.openFile(file_)
            self.loadItems()