Beispiel #1
0
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()
Beispiel #2
0
    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)