modified: main_windows/main_window.py modified: main_windows/ui_main_window.py modified: nst/Models.py new file: sub_windows/sub_window_9.py new file: sub_windows/ui_sub_window_9.pymaster
parent
b0d76f9add
commit
f4865ef6ab
@ -0,0 +1,87 @@
|
|||||||
|
import cv2
|
||||||
|
from PyQt5.QtCore import pyqtSignal, QThread
|
||||||
|
from PyQt5.QtGui import *
|
||||||
|
from PyQt5.QtWidgets import *
|
||||||
|
from PyQt5 import QtWidgets, QtGui
|
||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
from nst import Models
|
||||||
|
import time
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
# 子窗口布局
|
||||||
|
from sub_windows import ui_sub_window_9
|
||||||
|
|
||||||
|
|
||||||
|
class SubWindow(QMainWindow):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__(parent=None)
|
||||||
|
self.ui = ui_sub_window_9.Ui_Form()
|
||||||
|
self.ui.setupUi(self)
|
||||||
|
self.ui_init()
|
||||||
|
self.file_path = None
|
||||||
|
self.style_path = None
|
||||||
|
|
||||||
|
def ui_init(self):
|
||||||
|
# print("子窗口9初始化")
|
||||||
|
self.ui.pushButton_open_style.clicked.connect(self.open_style)
|
||||||
|
self.ui.pushButton_open_file.clicked.connect(self.open_file)
|
||||||
|
self.ui.pushButton_generate.clicked.connect(self.generate)
|
||||||
|
|
||||||
|
def open_file(self):
|
||||||
|
# Open a file dialog and display the selected image
|
||||||
|
options = QtWidgets.QFileDialog.Options()
|
||||||
|
options |= QtWidgets.QFileDialog.ReadOnly
|
||||||
|
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(
|
||||||
|
self,
|
||||||
|
"QFileDialog.getOpenFileName()",
|
||||||
|
"",
|
||||||
|
"All Files (*);;Python Files (*.py)",
|
||||||
|
options=options,
|
||||||
|
)
|
||||||
|
if fileName:
|
||||||
|
self.file_path = fileName
|
||||||
|
pixmap = QtGui.QPixmap(fileName)
|
||||||
|
scaled_pixmap = pixmap.scaled(
|
||||||
|
self.ui.label_image_1.size(), QtCore.Qt.KeepAspectRatio
|
||||||
|
)
|
||||||
|
self.ui.label_image_1.setPixmap(scaled_pixmap)
|
||||||
|
|
||||||
|
def open_style(self):
|
||||||
|
# Open a file dialog and display the selected style image
|
||||||
|
options = QtWidgets.QFileDialog.Options()
|
||||||
|
options |= QtWidgets.QFileDialog.ReadOnly
|
||||||
|
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(
|
||||||
|
self,
|
||||||
|
"QFileDialog.getOpenFileName()",
|
||||||
|
"",
|
||||||
|
"All Files (*);;Python Files (*.py)",
|
||||||
|
options=options,
|
||||||
|
)
|
||||||
|
if fileName:
|
||||||
|
self.style_path = fileName
|
||||||
|
pixmap = QtGui.QPixmap(fileName)
|
||||||
|
scaled_pixmap = pixmap.scaled(
|
||||||
|
self.ui.label_image_2.size(), QtCore.Qt.KeepAspectRatio
|
||||||
|
)
|
||||||
|
self.ui.label_image_2.setPixmap(scaled_pixmap)
|
||||||
|
|
||||||
|
def generate(self):
|
||||||
|
print("generating")
|
||||||
|
ph = "nst/weights/vgg19-dcbb9e9d.pth"
|
||||||
|
|
||||||
|
transfer = Models.Transfer(self.file_path, self.style_path, ph)
|
||||||
|
|
||||||
|
t = time.time()
|
||||||
|
dt, img = transfer.fit()
|
||||||
|
|
||||||
|
print(time.time() - t)
|
||||||
|
# print(dt,img)
|
||||||
|
|
||||||
|
img = np.array(img)[:, :, ::-1]
|
||||||
|
img = np.require(img, np.uint8, 'C')
|
||||||
|
|
||||||
|
qimage = QImage(img.data, img.shape[1], img.shape[0], QImage.Format_RGB888)
|
||||||
|
pixmap = QPixmap.fromImage(qimage)
|
||||||
|
self.ui.label_image_3.setPixmap(pixmap)
|
||||||
|
|
||||||
|
pass
|
@ -0,0 +1,82 @@
|
|||||||
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
|
class Ui_Form(object):
|
||||||
|
def setupUi(self, Form):
|
||||||
|
Form.setObjectName("Form")
|
||||||
|
Form.resize(1800, 700)
|
||||||
|
self.label_title = QtWidgets.QLabel(Form)
|
||||||
|
self.label_title.setGeometry(QtCore.QRect(800, 20, 200, 50))
|
||||||
|
font = QtGui.QFont()
|
||||||
|
font.setFamily("Agency FB")
|
||||||
|
font.setPointSize(22)
|
||||||
|
font.setBold(True)
|
||||||
|
font.setWeight(75)
|
||||||
|
self.label_title.setFont(font)
|
||||||
|
self.label_title.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_title.setObjectName("label_title")
|
||||||
|
|
||||||
|
self.pushButton_open_file = QtWidgets.QPushButton(Form)
|
||||||
|
self.pushButton_open_file.setGeometry(
|
||||||
|
QtCore.QRect(281, 620, 150, 28)
|
||||||
|
) # Adjusted button position
|
||||||
|
self.pushButton_open_file.setCheckable(False)
|
||||||
|
self.pushButton_open_file.setDefault(True)
|
||||||
|
self.pushButton_open_file.setObjectName("pushButton_open_file")
|
||||||
|
|
||||||
|
self.pushButton_open_style = QtWidgets.QPushButton(Form)
|
||||||
|
self.pushButton_open_style.setGeometry(
|
||||||
|
QtCore.QRect(831, 620, 150, 28)
|
||||||
|
) # Adjusted button position
|
||||||
|
self.pushButton_open_style.setCheckable(False)
|
||||||
|
self.pushButton_open_style.setDefault(True)
|
||||||
|
self.pushButton_open_style.setObjectName("pushButton_open_style")
|
||||||
|
|
||||||
|
self.pushButton_generate = QtWidgets.QPushButton(Form)
|
||||||
|
self.pushButton_generate.setGeometry(
|
||||||
|
QtCore.QRect(1381, 620, 150, 28)
|
||||||
|
) # Adjusted button position
|
||||||
|
self.pushButton_generate.setCheckable(False)
|
||||||
|
self.pushButton_generate.setDefault(True)
|
||||||
|
self.pushButton_generate.setObjectName("pushButton_generate")
|
||||||
|
|
||||||
|
self.label_image_1 = QtWidgets.QLabel(Form)
|
||||||
|
self.label_image_1.setGeometry(QtCore.QRect(100, 80, 512, 512))
|
||||||
|
self.label_image_1.setFont(font)
|
||||||
|
self.label_image_1.setFrameShape(QtWidgets.QFrame.Box)
|
||||||
|
self.label_image_1.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.label_image_1.setScaledContents(False)
|
||||||
|
self.label_image_1.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_image_1.setObjectName("label_image_1")
|
||||||
|
|
||||||
|
self.label_image_2 = QtWidgets.QLabel(Form)
|
||||||
|
self.label_image_2.setGeometry(QtCore.QRect(650, 80, 512, 512))
|
||||||
|
self.label_image_2.setFont(font)
|
||||||
|
self.label_image_2.setFrameShape(QtWidgets.QFrame.Box)
|
||||||
|
self.label_image_2.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.label_image_2.setScaledContents(False)
|
||||||
|
self.label_image_2.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_image_2.setObjectName("label_image_2")
|
||||||
|
|
||||||
|
self.label_image_3 = QtWidgets.QLabel(Form)
|
||||||
|
self.label_image_3.setGeometry(QtCore.QRect(1200, 80, 512, 512))
|
||||||
|
self.label_image_3.setFont(font)
|
||||||
|
self.label_image_3.setFrameShape(QtWidgets.QFrame.Box)
|
||||||
|
self.label_image_3.setFrameShadow(QtWidgets.QFrame.Raised)
|
||||||
|
self.label_image_3.setScaledContents(False)
|
||||||
|
self.label_image_3.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
|
self.label_image_3.setObjectName("label_image_3")
|
||||||
|
|
||||||
|
self.retranslateUi(Form)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(Form)
|
||||||
|
|
||||||
|
def retranslateUi(self, Form):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
Form.setWindowTitle(_translate("Form", "图像风格迁移"))
|
||||||
|
self.label_title.setText(_translate("Form", "图像风格迁移"))
|
||||||
|
self.pushButton_open_file.setText(_translate("Form", "打开原图片"))
|
||||||
|
self.pushButton_open_style.setText(_translate("Form", "打开风格图片"))
|
||||||
|
self.pushButton_generate.setText(_translate("Form", "生成风格迁移结果"))
|
||||||
|
self.label_image_1.setText(_translate("Form", "原图片预览"))
|
||||||
|
self.label_image_2.setText(_translate("Form", "风格图片预览"))
|
||||||
|
self.label_image_3.setText(_translate("Form", "结果图片预览"))
|
Loading…
Reference in new issue