コード例 #1
0
ファイル: sorterwidget.py プロジェクト: manerotoni/afw
    def sort(self, reversed_=False):
        all_items = self.tileview.items
        try:
            if not all_items:
                raise NoSampleError
            sorter = Sorter(self.sortAlgorithm.currentText(), all_items,
                            self.sort_filter_indices)
            if sorter.requiresTreeData():
                sorter.treedata = self.sortFilterFeatures(self.model.features)
        except NoSampleError:
            return

        try:
            dist = sorter()
        except Exception as e:
            QMessageBox.warning(self, 'Warning', str(e))
            return

        if reversed_:
            dist = -1*dist

        if dist is not None:
            for d, item in zip(dist, all_items):
                item.sortkey = d
            self.startSorting.emit()
コード例 #2
0
    def sort(self, reversed_=False):
        all_items = self.tileview.items
        try:
            if not all_items:
                raise NoSampleError
            sorter = Sorter(self.sortAlgorithm.currentText(), all_items,
                            self.sort_filter_indices)
            if sorter.requiresTreeData():
                sorter.treedata = self.sortFilterFeatures(self.model.features)
        except NoSampleError:
            return

        try:
            dist = sorter()
        except Exception as e:
            QMessageBox.warning(self, 'Warning', str(e))
            return

        if reversed_:
            dist = -1 * dist

        if dist is not None:
            for d, item in zip(dist, all_items):
                item.sortkey = d
            self.startSorting.emit()
コード例 #3
0
ファイル: toolbars.py プロジェクト: rhoef/afw
    def __init__(self, *args, **kw):
        super(SortToolBar, self).__init__(*args, **kw)

        self.quickSortBtn = QtWidgets.QPushButton("Quick Sort", self)
        self.quickSortBtn.setCheckable(True)
        self.quickSortBtn.setToolTip("Quick Sort")
        self.quickSortBtn.setIcon(
            QtGui.QIcon(":/crosshairs.png"))

        self.sortAscendingBtn = QtWidgets.QToolButton(self)
        self.sortAscendingBtn.setToolTip("Sort ascending")
        self.sortAscendingBtn.setIcon(
            QtGui.QIcon(":/oxygen/sort-ascending.png"))
        self.sortDescendingBtn = QtWidgets.QToolButton(self)
        self.sortDescendingBtn.setToolTip("Sort descending")
        self.sortDescendingBtn.setIcon(
            QtGui.QIcon(":/oxygen/sort-descending.png"))

        self.sortAlgorithm = QtWidgets.QComboBox(self)
        self.sortAlgorithm.setToolTip(
            ("Similarity measure used for sorting"))
        self.sortAlgorithm.addItems(Sorter.sorters())

        self.addWidget(self.sortAscendingBtn)
        self.addWidget(self.sortDescendingBtn)
        self.addSeparator()
        self.addWidget(self.quickSortBtn)
        self.addSeparator()
        self.addWidget(self.sortAlgorithm)
コード例 #4
0
ファイル: sorterwidget.py プロジェクト: manerotoni/afw
    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()
コード例 #5
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()
コード例 #6
0
    def __init__(self, *args, **kw):
        super(SortToolBar, self).__init__(*args, **kw)

        self.sortAscendingBtn = QtWidgets.QToolButton(self)
        self.sortAscendingBtn.setToolTip("Sort ascending")
        self.sortAscendingBtn.setIcon(
            QtGui.QIcon(":/oxygen/sort-ascending.png"))
        self.sortDescendingBtn = QtWidgets.QToolButton(self)
        self.sortDescendingBtn.setToolTip("Sort descending")
        self.sortDescendingBtn.setIcon(
            QtGui.QIcon(":/oxygen/sort-descending.png"))

        self.sortAlgorithm = QtWidgets.QComboBox(self)
        self.sortAlgorithm.setToolTip(
            ("Similarity measure used for sorting"))
        self.sortAlgorithm.addItems(Sorter.sorters())

        self.addWidget(self.sortAscendingBtn)
        self.addWidget(self.sortDescendingBtn)
        self.addWidget(self.sortAlgorithm)
コード例 #7
0
ファイル: config.py プロジェクト: manerotoni/afw
class AtConfig(object):
    """Global settings (currently) not visible to the user."""

    __metaclass__ = Singleton

    Compression = {"gzip": range(10), "lzf": None, "None": None}

    FeatureGroups = FeatureGroups
    Sorters = Sorter.sorters()

    def __init__(self):
        # renders contuours in pixmap rather than QGraphicsView
        # if False can cause a segfault in certain cases
        self.draw_contours_in_pixmap = False
        # one of ("gzip", "szip", "lwz", None)
        # szip is not available on every platform
        self.compression = "gzip"
        # 0-9 if gzip else None

        if self.compression is None:
            self.compression_opts = None
        else:
            self.compression_opts = 4

        # uses complemenatary color to draw conturs to improve contrast
        self.contours_complementary_color = True

        # maximum fraction of support vectors for the one class svm
        # classifier
        self.max_sv_fraction = 0.20

        # if hdf contains more items, than the loading strategy changeds to
        # "interactive", otherwise all item are loaded at oncec
        self.interactive_item_limit = 5000

        self.default_sorter = Sorter.CosineSimilarity
        self.default_feature_group = self.FeatureGroups.keys()[0]

        # include raw image data into the hdf file
        self.save_raw_images = False

    def saveSettings(self):

        settings = QSettings(version.organisation, version.appname)
        settings.beginGroup('Preferences')
        settings.setValue('compression', self.compression)
        settings.setValue('compression_opts', self.compression_opts)
        settings.setValue('max_sv_fraction', self.max_sv_fraction)
        settings.setValue('interactive_item_limit',
                          self.interactive_item_limit)
        settings.setValue('default_sorter', self.default_sorter)
        settings.setValue('default_feature_group', self.default_feature_group)
        settings.setValue('contours_complementary_color',
                          self.contours_complementary_color)
        settings.setValue('save_raw_images', self.save_raw_images)
        settings.endGroup()

    def restoreSettings(self):

        settings = QSettings(version.organisation, version.appname)
        settings.beginGroup('Preferences')

        if settings.contains('compression'):
            value = settings.value('compression', None)
            self.compression = value

        if settings.contains('compression_opts'):
            value = settings.value('compression_opts', None)
            if isinstance(value, basestring):
                self.compression_opts = eval(value)
            else:
                self.compression_opts = value

        if settings.contains('max_sv_fraction'):
            value = settings.value('max_sv_fraction', type=float)
            self.max_sv_fraction = value

        if settings.contains('interactive_item_limit'):
            value = settings.value('interactive_item_limit', 5000, type=int)
            self.interactive_item_limit = value

        if settings.contains('default_sorter'):
            value = settings.value('default_sorter', type=str)
            self.default_sorter = value

        if settings.contains('default_feature_group'):
            value = settings.value('default_feature_group')
            self.default_feature_group = value

        if settings.contains('contours_complementary_color'):
            value = settings.value('contours_complementary_color', type=bool)
            self.contours_complementary_color = value

        if settings.contains('save_raw_images'):
            value = settings.value('save_raw_images', type=bool)
            self.save_raw_images = value

        settings.endGroup()