Ejemplo n.º 1
0
    def test_calc_fovx(self):
        fovx = PinholeCameraModel.calc_fovx(53.8, 1080, 1920)
        testing.assert_almost_equal(
            fovx, 84.1, decimal=1)

        fovx = PinholeCameraModel.calc_fovx(45.0, 480, 640)
        testing.assert_almost_equal(
            fovx, 57.8, decimal=1)
Ejemplo n.º 2
0
def save_roi(camera_info, output_file):
    """Save roi

    save as [xmin, xmax, ymin, ymax] order
    cm.roi is [top, left, bottom, right]
    """

    cm = PinholeCameraModel.from_camera_info(camera_info)
    ymin, xmin, ymax, xmax = cm.roi
    clip_info = np.array([xmin, xmax, ymin, ymax])
    np.save(output_file, clip_info)
Ejemplo n.º 3
0
    def test__binning_y(self):
        cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
        cm.roi = [0, 0, 100, 100]
        cm.target_size = (640, 480)
        cm.binning_y = 0.5
        self.assertEqual(cm.target_size, (640, 200))

        cm.target_size = (640, 480)
        cm.roi = [0, 0, 97, 100]
        cm.binning_y = 2
        self.assertEqual(cm.target_size, (640, 48))
Ejemplo n.º 4
0
    def test_rectify_point(self):
        cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
        testing.assert_equal(cm.rectify_point([0, 0]).shape, (2,))
        testing.assert_equal(cm.rectify_point((0, 0)).shape, (2,))
        testing.assert_equal(cm.rectify_point(np.array((0, 0))).shape, (2,))

        testing.assert_equal(cm.rectify_point([[0, 0]]).shape, (1, 2))
        testing.assert_equal(
            cm.rectify_point(np.array([[0, 0]])).shape, (1, 2))

        testing.assert_equal(
            cm.rectify_point(np.zeros((10, 2))).shape, (10, 2))
Ejemplo n.º 5
0
 def test_points_roi(self):
     cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
     points = [[874.5, 680],
               [875, 680],
               [875, 679.5],
               [1072, 680],
               [1072.5, 680],
               [1072, 859],
               [1072, 869.5]]
     testing.assert_equal(
         cm.points_in_roi(points),
         [False, True, False, True, False, True, False])
Ejemplo n.º 6
0
    def test__target_size(self):
        cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
        org_roi = copy.deepcopy(cm.roi)
        cm.target_size = (640, 480)
        self.assertEqual(cm.target_size, (640, 480))

        resize_K = cm.K.copy()
        resize_P = cm.P.copy()

        cm.roi = [0, 0, 100, 100]
        cm.target_size = (640, 480)
        cm.roi = org_roi
        testing.assert_equal(resize_K, cm.K)
        testing.assert_equal(resize_P, cm.P)
Ejemplo n.º 7
0
 def load_camera_info(self):
     rospy.loginfo('loading camera model')
     self.camera_info = rospy.wait_for_message(
         self.camera_info_msg, CameraInfo)
     # self.camera_model.fromCameraInfo(self.camera_info)
     self.camera_model = PinholeCameraModel.from_camera_info(self.camera_info)
     # self.intrinsic = o3d.camera.PinholeCameraIntrinsic()
     # self.intrinsic.set_intrinsics(
     #     self.camera_model.width,
     #     self.camera_model.height,
     #     self.camera_model.fx(),
     #     self.camera_model.fy(),
     #     self.camera_model.cx(),
     #     self.camera_model.cy())
     #print(self.camera_model.width)
     print('load camera model')
Ejemplo n.º 8
0
    def test__roi(self):
        cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
        org_roi = copy.deepcopy(cm.roi)
        org_K = cm.K.copy()
        org_P = cm.P.copy()

        cm.roi = [0, 0, 100, 100]
        testing.assert_almost_equal(org_K[:3, :2], cm.K[:3, :2])
        testing.assert_almost_equal(cm.K[:2, 2], [951.8467, 506.9212],
                                    decimal=3)
        testing.assert_almost_equal(org_P[:3, :2], cm.P[:3, :2])
        testing.assert_almost_equal(cm.P[:2, 2], [951.8467, 506.9212],
                                    decimal=3)
        cm.roi = org_roi
        testing.assert_almost_equal(org_K, cm.K)
        testing.assert_almost_equal(org_P, cm.P)
Ejemplo n.º 9
0
    def test_draw_roi(self):
        cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
        img_org = kinect_v2_image()
        img = img_org.copy()
        cm.draw_roi(img, copy=True)
        testing.assert_equal(img, img_org)

        pil_img = Image.fromarray(img_org)
        gray_pil_img = pil_img.convert("L")
        gray_img_org = np.array(gray_pil_img, dtype=np.uint8)
        gray_img = gray_img_org.copy()
        cm.draw_roi(gray_img, copy=False)
        testing.assert_equal(gray_img, gray_img_org)
        cm.draw_roi(gray_img, copy=True)  # ignore copy=True
        testing.assert_equal(gray_img, gray_img_org)

        alpha_pil_img = pil_img.convert("RGBA")
        alpha_img_org = np.array(alpha_pil_img, dtype=np.uint8)
        alpha_img = alpha_img_org.copy()
        cm.draw_roi(alpha_img, copy=True)
        testing.assert_equal(alpha_img, alpha_img_org)
Ejemplo n.º 10
0
def save_camera_info(camera_info, output_file):
    cm = PinholeCameraModel.from_camera_info(camera_info)
    cm.dump(output_file)
Ejemplo n.º 11
0
 def test_rectify_image(self):
     cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
     img = kinect_v2_image()
     cm.rectify_image(img)
Ejemplo n.º 12
0
 def test_from_yaml_file(self):
     PinholeCameraModel.from_yaml_file(camera_info_path)
     PinholeCameraModel.from_yaml_file(ros_camera_info_path)
Ejemplo n.º 13
0
 def test_from_fovy(self):
     PinholeCameraModel.from_fovy(45, 480, 640)
Ejemplo n.º 14
0
 def test_calc_f_from_fov(self):
     f = PinholeCameraModel.calc_f_from_fov(90, 480)
     testing.assert_almost_equal(f, 240)
Ejemplo n.º 15
0
 def setUpClass(cls):
     cls.cm = PinholeCameraModel.from_fovy(45, 480, 640)
Ejemplo n.º 16
0
 def setUpClass(cls):
     cls.cm = PinholeCameraModel.from_yaml_file(kinect_v2_camera_info())
Ejemplo n.º 17
0
 def test_kinect_v2_camera_info(self):
     info_path = kinect_v2_camera_info()
     PinholeCameraModel.from_yaml_file(info_path)