class MainWindow(QMainWindow): def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_MainForm() self.ui.setupUi(self) self.ui.openAction.activated.connect(self.onOpenAction) self.ui.detectAction.activated.connect(self.onDetectAction) self.ui.debugAction.activated.connect(self.onDebugAction) self.ui.aboutAction.activated.connect(self.onAboutAction) def onOpenAction(self): fileName = str( QFileDialog.getOpenFileName( self, "Исходное изображение", "/home/polzuka/Documents/isabelle", "Изображения (*.jpg)" ) ) # fileName = '/home/polzuka/polzuka-isabelle/DSC00997.JPG' self.orig = LoadImageM(fileName, CV_LOAD_IMAGE_GRAYSCALE) showMat(scaleMat(self.orig, float(self.ui.origImageLabel.height()) / self.orig.rows), self.ui.origImageLabel) def onDetectAction(self): faceCascade = Load("/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml") eyeCascade = Load("/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml") normal = 300.0 self.eye = [] tmp = scaleMat(self.orig, normal / self.orig.rows) shw = scaleMat(self.orig, float(self.ui.origImageLabel.height()) / self.orig.rows) faces = detectObjs(tmp, faceCascade) for face in faces: faceROI = GetSubRect(tmp, face) showROI = GetSubRect(shw, scaleRect(face, self.ui.origImageLabel.height() / normal)) origROI = GetSubRect(self.orig, scaleRect(face, self.orig.rows / normal)) eyes = detectObjs(faceROI, eyeCascade) for eye in eyes: pt0, pt1 = getPoints(eye, self.ui.origImageLabel.height() / normal) Rectangle(showROI, pt0, pt1, black, 3) self.eye.append(GetSubRect(origROI, scaleRect(eye, self.orig.rows / normal))) pt0, pt1 = getPoints(face, self.ui.origImageLabel.height() / normal) Rectangle(shw, pt0, pt1, white, 3) showMat(shw, self.ui.origImageLabel) showMat(scaleMat(self.eye[0], float(self.ui.eye0Label.height()) / self.eye[0].rows), self.ui.eye0Label) showMat(scaleMat(self.eye[1], float(self.ui.eye1Label.height()) / self.eye[1].rows), self.ui.eye1Label) def onDebugAction(self): tmp = scaleMat(self.eye[0], 0.5) controlWindow = ControlWindow(self, tmp, self.ui.origImageLabel, self.ui.logPlainTextEdit) controlWindow.show() def onAboutAction(self): aboutWindow = AboutWindow(self) aboutWindow.show()
def __init__(self, parent=None): QWidget.__init__(self, parent) self.ui = Ui_MainForm() self.ui.setupUi(self) self.ui.openAction.activated.connect(self.onOpenAction) self.ui.detectAction.activated.connect(self.onDetectAction) self.ui.debugAction.activated.connect(self.onDebugAction) self.ui.aboutAction.activated.connect(self.onAboutAction)