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)
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)
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)