import sys import os from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1140, 450) MainWindow.setMinimumSize(QtCore.QSize(1140, 450)) MainWindow.setMaximumSize(QtCore.QSize(1140, 450)) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton_w = QtWidgets.QPushButton(self.centralwidget) self.pushButton_w.setGeometry(QtCore.QRect(10, 90, 151, 51)) self.pushButton_w.setObjectName("pushButton_w") self.pushButton_a = QtWidgets.QPushButton(self.centralwidget) self.pushButton_a.setGeometry(QtCore.QRect(10, 160, 71, 51)) self.pushButton_a.setObjectName("pushButton_a") self.pushButton_d = QtWidgets.QPushButton(self.centralwidget) self.pushButton_d.setGeometry(QtCore.QRect(90, 160, 71, 51)) self.pushButton_d.setObjectName("pushButton_d") self.pushButton_s = QtWidgets.QPushButton(self.centralwidget) self.pushButton_s.setGeometry(QtCore.QRect(10, 360, 151, 51)) self.pushButton_s.setObjectName("pushButton_s") self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(10, 230, 151, 51)) self.pushButton_5.setObjectName("pushButton_5") self.label_orign = QtWidgets.QLabel(self.centralwidget) self.label_orign.setGeometry(QtCore.QRect(180, 20, 471, 401)) self.label_orign.setStyleSheet("background-color: rgb(255, 255, 255);") self.label_orign.setObjectName("label_orign") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(660, 20, 471, 401)) self.label_2.setStyleSheet("background-color: rgb(255, 255, 255);") self.label_2.setObjectName("label_2") self.pushButton_w_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_w_2.setGeometry(QtCore.QRect(10, 20, 151, 51)) self.pushButton_w_2.setObjectName("pushButton_w_2") self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(50, 290, 81, 21)) self.lineEdit.setObjectName("lineEdit") self.horizontalSlider = QtWidgets.QSlider(self.centralwidget) self.horizontalSlider.setGeometry(QtCore.QRect(10, 320, 141, 22)) self.horizontalSlider.setSliderPosition(50) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setTickInterval(0) self.horizontalSlider.setObjectName("horizontalSlider") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1140, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton_w.setText(_translate("MainWindow", "Predict")) self.pushButton_a.setText(_translate("MainWindow", "Pre")) self.pushButton_d.setText(_translate("MainWindow", "Next")) self.pushButton_s.setText(_translate("MainWindow", "Save")) self.pushButton_5.setText(_translate("MainWindow", "背景图")) self.label_orign.setText(_translate("MainWindow", "

原始图像

")) self.label_2.setText(_translate("MainWindow", "

预测图像

")) self.pushButton_w_2.setText(_translate("MainWindow", "Openimg")) self.lineEdit.setText(_translate("MainWindow", "改变mask大小")) class MyMainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.image_path = "" self.image_folder = "" self.image_files = [] self.current_index = 0 self.pushButton_w_2.clicked.connect(self.open_image_folder) self.pushButton_a.clicked.connect(self.load_previous_image) self.pushButton_d.clicked.connect(self.load_next_image) def open_image_folder(self): folder_dialog = QtWidgets.QFileDialog() folder_path = folder_dialog.getExistingDirectory(self, 'Open Image Folder', '') if folder_path: self.image_folder = folder_path self.image_files = self.get_image_files(self.image_folder) if self.image_files: self.show_image_selection_dialog() def get_image_files(self, folder_path): image_files = [file for file in os.listdir(folder_path) if file.endswith(('png', 'jpg', 'jpeg', 'bmp'))] return image_files def show_image_selection_dialog(self): dialog = QtWidgets.QDialog(self) dialog.setWindowTitle("Select Image") layout = QtWidgets.QVBoxLayout() self.listWidget = QtWidgets.QListWidget() for image_file in self.image_files: item = QtWidgets.QListWidgetItem(image_file) pixmap = QtGui.QPixmap(os.path.join(self.image_folder, image_file)).scaledToWidth(100) item.setIcon(QtGui.QIcon(pixmap)) self.listWidget.addItem(item) self.listWidget.itemDoubleClicked.connect(self.image_selected) layout.addWidget(self.listWidget) buttonBox = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.image_selected) buttonBox.rejected.connect(dialog.reject) layout.addWidget(buttonBox) dialog.setLayout(layout) dialog.exec_() def image_selected(self): selected_item = self.listWidget.currentItem() if selected_item: selected_index = self.listWidget.currentRow() if selected_index >= 0: self.current_index = selected_index self.show_image() def show_image(self): file_path = os.path.join(self.image_folder, self.image_files[self.current_index]) pixmap = QtGui.QPixmap(file_path) self.label_orign.setPixmap(pixmap.scaled(self.label_orign.size(), QtCore.Qt.KeepAspectRatio)) def load_previous_image(self): if self.image_files: if self.current_index > 0: self.current_index -= 1 else: self.current_index = len(self.image_files) - 1 self.show_image() def load_next_image(self): if self.image_files: if self.current_index < len(self.image_files) - 1: self.current_index += 1 else: self.current_index = 0 self.show_image() if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainWindow = MyMainWindow() mainWindow.show() sys.exit(app.exec_())