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)
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")