예제 #1
0
    def test_perpendicular(self):
        p = Point(1, 1, 0)
        q = Point(0, 0, 1)
        r = Point(1, 2, 3)
        l = Line(p, q)
        m = l.perpendicular(p)

        assert l.meet(m) == p
        assert is_perpendicular(l, m)

        m = l.perpendicular(r)

        assert is_perpendicular(l, m)

        e = Plane(l, r)
        m = e.perpendicular(p)

        assert e.meet(m) == p
        assert is_perpendicular(l, m)

        m = e.perpendicular(p + m.direction)

        assert e.meet(m) == p
        assert is_perpendicular(l, m)

        f = e.perpendicular(l)

        assert e.meet(f) == l
        assert is_perpendicular(e, f)
예제 #2
0
    def test_perpendicular(self):
        p = Point(1, 1)
        l = Line(1, 1, 0)
        m = l.perpendicular(p)

        assert m == Line(-1, 1, 0)

        m = l.perpendicular(Point(0, 0))
        assert m == Line(-1, 1, 0)

        p = Point(1, 1, 0)
        q = Point(0, 0, 1)
        l = Line(p, q)
        m = l.perpendicular(p)

        assert is_perpendicular(l, m)
    def __detect_and_draw_faces_and_eyes_better(self, frame, gray_frame):
        faces = self.__detect_faces(gray_frame)
        # self.__draw_faces(faces, frame)

        if len(faces) == 0:
            # eyes = self.__detect_eyes(gray_frame)
            # self.__draw_eyes(eyes, frame)
            pass
        else:
            for face in faces:
                (x, y, w, h) = face
                roi_gray = gray_frame[y:y + h, x:x + w]
                roi_color = frame[y:y + h, x:x + w]
                eyes = self.__detect_eyes(roi_gray)

                if len(eyes) == 2:
                    self.__draw_faces([face], frame)
                    for (ex, ey, ew, eh) in eyes:
                        cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)

                    eyes_centers = [(ex + ew // 2, ey + eh // 2) for (ex, ey, ew, eh) in eyes]

                    cv2.line(roi_color, (eyes_centers[0][0], eyes_centers[0][1]),
                             (eyes_centers[1][0], eyes_centers[1][1]), (66, 215, 244), 1)

                    eyes_centers_as_points = [Point(x, y) for (x, y) in eyes_centers]

                    middle_point_eyes = ((eyes_centers[0][0] + eyes_centers[1][0]) // 2,
                                         (eyes_centers[0][1] + eyes_centers[1][1]) // 2)

                    middle_point_eyes_as_point = Point(middle_point_eyes[0], middle_point_eyes[1])

                    line_centering_eyes = Line(eyes_centers_as_points[0], eyes_centers_as_points[1])

                    vertical_axis = line_centering_eyes.perpendicular(through=middle_point_eyes_as_point)
예제 #4
0
    def test_perpendicular(self):
        p = Point(1, 1, 0)
        q = Point(0, 0, 1)
        l = Line(p, q)
        m = l.perpendicular(p)

        assert is_perpendicular(l, m)

        r = Point(1, 2, 3)
        e = Plane(p, q, r)
        m = e.perpendicular(p)

        assert is_perpendicular(l, m)