示例#1
0
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_MWindow()
        self.ui.setupUi(self)

        self.ui.btn_load_image.clicked.connect(self.load_image_clicked)
        self.ui.btn_next1.clicked.connect(self.next_clicked)
        self.ui.btn_back2.clicked.connect(self.back_clicked)
        self.ui.btn_next2.clicked.connect(self.process)
示例#2
0
class MWindow(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_MWindow()
        self.ui.setupUi(self)

        self.ui.btn_load_image.clicked.connect(self.load_image_clicked)
        self.ui.btn_next1.clicked.connect(self.next_clicked)
        self.ui.btn_back2.clicked.connect(self.back_clicked)
        self.ui.btn_next2.clicked.connect(self.process)

    def load_image_clicked(self):
        image_path = QFileDialog.getOpenFileName(self, u"Изображение", ".", u"Изображения (*.jpg *.png *.bmp)")
        if not image_path.isNull():
            image_path = unicode(image_path)
            self.image = QImage(image_path)
            self.ui.txt_h_parts.setValue(int(math.ceil(float(self.image.width()) / 3)))
            self.ui.txt_v_parts.setValue(int(math.ceil(float(self.image.height()) / 3)))
            self.ui.txt_max_error.setValue(25)
            self.ui.txt_zip.setValue(21)
            pixmap = QPixmap.fromImage(self.image)
            sc = QGraphicsScene()
            sc.addPixmap(pixmap)
            self.ui.image_preview.setScene(sc)
            self.ui.image_preview.repaint()
            self.ui.btn_next1.setEnabled(True)

    def next_clicked(self):
        self.ui.stackedWidget.setCurrentIndex(self.ui.stackedWidget.currentIndex() + 1)

    def back_clicked(self):
        self.ui.stackedWidget.setCurrentIndex(self.ui.stackedWidget.currentIndex() - 1)

    def process(self):
        self.ui.page_2.setEnabled(False)
        self.thread = ProcessThread(self)
        self.thread.nn_count = int(self.ui.txt_h_parts.value() * self.ui.txt_v_parts.value())
        self.thread.inputs = int(
            math.ceil(float(self.image.width()) / self.ui.txt_h_parts.value())
            * math.ceil(float(self.image.height()) / self.ui.txt_v_parts.value())
            * 3
        )
        self.thread.hidden = int(self.ui.txt_zip.value())
        self.thread.h_parts = self.ui.txt_h_parts.value()
        self.thread.v_parts = self.ui.txt_v_parts.value()
        self.thread.image = self.image
        self.thread.max_error = self.ui.txt_max_error.value()
        self.thread.progress_changed.connect(self.progress_changed)
        self.thread.progress_complete.connect(self.progress_complete)
        self.thread.start()

    def progress_changed(self, progress):
        self.ui.progressBar.setValue(progress)

    def progress_complete(self, new_image):
        pixmap = QPixmap.fromImage(self.image)
        sc = QGraphicsScene()
        sc.addPixmap(pixmap)
        self.ui.before.setScene(sc)
        self.ui.before.repaint()
        pixmap = QPixmap.fromImage(new_image)
        sc = QGraphicsScene()
        sc.addPixmap(pixmap)
        self.ui.after.setScene(sc)
        self.ui.after.repaint()
        self.next_clicked()
        new_image.save("out.bmp")
        self.image.save("in.bmp")