Здравствуйте, я начала делать программу для распознавания лиц и не могу понять, как связать интерфейс QT с кодом питона(то есть, связать кнопки "dwnlphoto" с кодом другого файла, так же, как к питону прикрепить БД.
Большое спасибо за помощь.
Код от QT
Код:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(530, 338)
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.groupBox_2.sizePolicy().hasHeightForWidth())
self.groupBox_2.setSizePolicy(sizePolicy)
self.groupBox_2.setObjectName("groupBox_2")
self.horizontalLayout.addWidget(self.groupBox_2)
self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
self.groupBox.setObjectName("groupBox")
self.verticalLayout = QtWidgets.QVBoxLayout(self.groupBox)
self.verticalLayout.setObjectName("verticalLayout")
self.dwnlphoto = QtWidgets.QPushButton(self.groupBox)
self.dwnlphoto.setObjectName("dwnlphoto")
self.verticalLayout.addWidget(self.dwnlphoto)
self.dwnlphoto_2 = QtWidgets.QPushButton(self.groupBox)
self.dwnlphoto_2.setObjectName("dwnlphoto_2")
self.verticalLayout.addWidget(self.dwnlphoto_2)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.horizontalLayout.addWidget(self.groupBox)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 530, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.dwnlphoto.clicked.connect(self.groupBox_2.show)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Program interface"))
self.groupBox_2.setTitle(_translate("MainWindow", "Результат работы"))
self.groupBox.setTitle(_translate("MainWindow", "Обработка данных"))
self.dwnlphoto.setText(_translate("MainWindow", "Загрузка 1 фотографии"))
self.dwnlphoto_2.setText(_translate("MainWindow", "Загрузка 2 фотографии"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Код приложения
Код:
import dlib
from skimage import io
from scipy.spatial import distance
sp = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
facerec = dlib.face_recognition_model_v1('dlib_face_recognition_resnet_model_v1.dat')
detector = dlib.get_frontal_face_detector()
img = io.imread('')
win1 = dlib.image_window()
win1.clear_overlay()
win1.set_image(img)
dets = detector(img, 1)
for k, d in enumerate(dets):
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
k, d.left(), d.top(), d.right(), d.bottom()))
shape = sp(img, d)
win1.clear_overlay()
win1.add_overlay(d)
win1.add_overlay(shape)
face_descriptor1 = facerec.compute_face_descriptor(img, shape)
print(face_descriptor1)
img = io.imread('')
win2 = dlib.image_window()
win2.clear_overlay()
win2.set_image(img)
dets_webcam = detector(img, 1)
for k, d in enumerate(dets_webcam):
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
k, d.left(), d.top(), d.right(), d.bottom()))
shape = sp(img, d)
win2.clear_overlay()
win2.add_overlay(d)
win2.add_overlay(shape)
face_descriptor2 = facerec.compute_face_descriptor(img, shape)
a = distance.euclidean(face_descriptor1, face_descriptor2)
print(a)