Exemple #1
0
    def _on_class_apply(self):
        '''
        Apply class changes
        '''
        learner = self._learner

        class_name_new = str(self._class_text.text())
        class_label_new = self._class_sbox.value()
        class_name = self._current_class

        if not class_name is None:
            class_label = learner.class_labels[class_name]

            class_labels = learner.class_labels.values()
            class_labels.remove(class_label)
            class_names = learner.class_names.values()
            class_names.remove(class_name)

            if len(class_name_new) == 0:
                warning(self,
                        "Invalid class name",
                        info="The class name must not be empty!")
            elif (not class_name_new in class_names
                  and not class_label_new in class_labels):

                del learner.class_names[class_label]
                del learner.class_labels[class_name]
                del learner.hexcolors[class_name]

                item = self._find_items_in_class_table(
                    class_name, self.COLUMN_CLASS_NAME)[0]

                learner.class_names[class_label_new] = class_name_new
                learner.class_labels[class_name_new] = class_label_new
                class_color = self._class_color_btn.current_color
                learner.hexcolors[class_name_new] = \
                    qcolor_to_hex(class_color)

                item.setText(class_name_new)
                item2 = self._class_table.item(item.row(),
                                               self.COLUMN_CLASS_LABEL)
                item2.setText(str(class_label_new))
                item2 = self._class_table.item(item.row(),
                                               self.COLUMN_CLASS_COLOR)
                item2.setBackground(QBrush(class_color))

                col = get_qcolor_hicontrast(class_color)
                self._class_table.resizeRowsToContents()
                self._class_table.resizeColumnsToContents()
                self._class_table.scrollToItem(item)

                self._annotations.rename_class(class_name, class_name_new)
                self._current_class = class_name_new
                self._activate_objects_for_image(False)
                self._activate_objects_for_image(True)
            else:
                warning(self, "Class names and labels must be unique!",
                        info="Class name '%s' or label '%s' already used." %\
                             (class_name_new, class_label_new))
Exemple #2
0
    def _on_class_apply(self):
        '''
        Apply class changes
        '''
        learner = self._learner

        class_name_new = str(self._class_text.text())
        class_label_new = self._class_sbox.value()
        class_name = self._current_class

        if not class_name is None:
            class_label = learner.class_labels[class_name]

            class_labels = learner.class_labels.values()
            class_labels.remove(class_label)
            class_names = learner.class_names.values()
            class_names.remove(class_name)

            if len(class_name_new) == 0:
                warning(self, "Invalid class name",
                        info="The class name must not be empty!")
            elif (not class_name_new in class_names and
                  not class_label_new in class_labels):

                del learner.class_names[class_label]
                del learner.class_labels[class_name]
                del learner.hexcolors[class_name]

                item = self._find_items_in_class_table(class_name,
                                                       self.COLUMN_CLASS_NAME)[0]

                learner.class_names[class_label_new] = class_name_new
                learner.class_labels[class_name_new] = class_label_new
                class_color = self._class_color_btn.current_color
                learner.hexcolors[class_name_new] = \
                    qcolor_to_hex(class_color)

                item.setText(class_name_new)
                item2 = self._class_table.item(item.row(),
                                               self.COLUMN_CLASS_LABEL)
                item2.setText(str(class_label_new))
                item2 = self._class_table.item(item.row(),
                                               self.COLUMN_CLASS_COLOR)
                item2.setBackground(QBrush(class_color))

                col = get_qcolor_hicontrast(class_color)
                self._class_table.resizeRowsToContents()
                self._class_table.resizeColumnsToContents()
                self._class_table.scrollToItem(item)

                self._annotations.rename_class(class_name, class_name_new)
                self._current_class = class_name_new
                self._activate_objects_for_image(False)
                self._activate_objects_for_image(True)
            else:
                warning(self, "Class names and labels must be unique!",
                        info="Class name '%s' or label '%s' already used." %\
                             (class_name_new, class_label_new))
Exemple #3
0
    def _on_class_changed(self, current, previous):
        if not current is None:
            item = self._class_table.item(current.row(),
                                          self.COLUMN_CLASS_NAME)
            class_name = str(item.text())
            self._current_class = class_name
            hex_col = self._learner.hexcolors[class_name]
            col = get_qcolor_hicontrast(QColor(hex_col))
            class_table = self._class_table
            class_table.scrollToItem(item)
            self._class_text.setText(class_name)
            class_label = self._learner.class_labels[class_name]
            self._class_sbox.setValue(class_label)
            self._class_color_btn.set_color(QColor(hex_col))

            self._update_annotation_table()
        else:
            self._current_class = None
Exemple #4
0
    def _on_class_changed(self, current, previous):
        if not current is None:
            item = self._class_table.item(current.row(),
                                          self.COLUMN_CLASS_NAME)
            class_name = str(item.text())
            self._current_class = class_name
            hex_col = self._learner.hexcolors[class_name]
            col = get_qcolor_hicontrast(QColor(hex_col))
            class_table = self._class_table
            class_table.scrollToItem(item)
            self._class_text.setText(class_name)
            class_label = self._learner.class_labels[class_name]
            self._class_sbox.setValue(class_label)
            self._class_color_btn.set_color(QColor(hex_col))

            self._update_annotation_table()
        else:
            self._current_class = None
Exemple #5
0
    def _on_class_changed(self, current, previous):
        if not current is None:
            item = self._class_table.item(current.row(),
                                          self.COLUMN_CLASS_NAME)
            class_name = str(item.text())
            self._current_class = class_name
            hex_col = self._learner.dctHexColors[class_name]
            col = get_qcolor_hicontrast(QColor(hex_col))
            class_table = self._class_table
            css = "selection-background-color: %s; selection-color: %s;" % \
                  (hex_col, qcolor_to_hex(col))
            class_table.scrollToItem(item)
            self._class_text.setText(class_name)
            class_label = self._learner.dctClassLabels[class_name]
            self._class_sbox.setValue(class_label)
            self._class_color_btn.set_color(QColor(hex_col))
            class_table.setStyleSheet(css)

            self._update_annotation_table()
            self._ann_table.setStyleSheet(css)
        else:
            self._current_class = None