def load_bunny():
    with open(cv.samples.findFile("../viz/data/bunny.ply"), 'r') as f:
        s = f.read()
    ligne = s.split('\n')
    if len(ligne) == 5753:
        pts3d = np.zeros(shape=(1,1889,3), dtype=np.float32)
        pts3d_c = 255 * np.ones(shape=(1,1889,3), dtype=np.uint8)
        pts3d_n = np.ones(shape=(1,1889,3), dtype=np.float32)
        for idx in range(12,1889):
            d = ligne[idx].split(' ')
            pts3d[0,idx-12,:] = (float(d[0]), float(d[1]), float(d[2]))
    pts3d = 5 * pts3d
    return cv.viz_WCloud(pts3d)
Exemplo n.º 2
0
    def test_viz_show_cloud_shaded_by_normals(self):
        mesh = cv.viz.readMesh(self.find_file("viz/dragon.ply"))
        mesh.normals = cv.viz.computeNormals(mesh)
        pose = cv.viz_Affine3d().rotate((0, 0.8, 0))

        cloud = cv.viz_WCloud(mesh.cloud, cv.viz_Color().white(), mesh.normals)
        cloud.setRenderingProperty(cv.viz.SHADING, cv.viz.SHADING_GOURAUD)
        viz = cv.viz_Viz3d("show_cloud_shaded_by_normals")

        viz.showWidget("cloud", cloud, pose)
        viz.showWidget(
            "text2d",
            cv.viz_WText("Cloud shaded by normals", (20, 20), 20,
                         cv.viz_Color().green()))
        viz.spinOnce(500, True)
Exemplo n.º 3
0
    def test_viz_show_cloud_bluberry(self):
        dragon_cloud, _, _ = cv.viz.readCloud(self.find_file("viz/dragon.ply"))

        pose = cv.viz_Affine3d()
        pose = pose.rotate((0, 0.8, 0))
        viz = cv.viz_Viz3d("show_cloud_bluberry")
        viz.setBackgroundColor(cv.viz_Color().black())
        viz.showWidget("coosys", cv.viz_WCoordinateSystem())
        viz.showWidget("dragon",
                       cv.viz_WCloud(dragon_cloud,
                                     cv.viz_Color().bluberry()), pose)

        viz.showWidget(
            "text2d",
            cv.viz_WText("Bluberry cloud", (20, 20), 20,
                         cv.viz_Color().green()))
        viz.spinOnce(500, True)
Exemplo n.º 4
0
    def test_viz_show_cloud_masked(self):
        dragon_cloud, _, _ = cv.viz.readCloud(self.find_file("viz/dragon.ply"))

        qnan = np.NAN
        for idx in range(dragon_cloud.shape[0]):
            if idx % 15 != 0:
                dragon_cloud[idx, :] = qnan

        pose = cv.viz_Affine3d()
        pose = pose.rotate((0, 0.8, 0))

        viz = cv.viz_Viz3d("show_cloud_masked")
        viz.showWidget("coosys", cv.viz_WCoordinateSystem())
        viz.showWidget("dragon", cv.viz_WCloud(dragon_cloud), pose)
        viz.showWidget(
            "text2d",
            cv.viz_WText("Nan masked cloud", (20, 20), 20,
                         cv.viz_Color().green()))
        viz.spinOnce(500, True)
Exemplo n.º 5
0
    def test_viz_show_cloud_random_color(self):
        dragon_cloud, _, _ = cv.viz.readCloud(self.find_file("viz/dragon.ply"))

        colors = np.random.randint(0,
                                   255,
                                   size=(dragon_cloud.shape[0],
                                         dragon_cloud.shape[1], 3),
                                   dtype=np.uint8)

        pose = cv.viz_Affine3d()
        pose = pose.rotate((0, 0.8, 0))

        viz = cv.viz_Viz3d("show_cloud_random_color")
        viz.setBackgroundMeshLab()
        viz.showWidget("coosys", cv.viz_WCoordinateSystem())
        viz.showWidget("dragon", cv.viz_WCloud(dragon_cloud, colors), pose)
        viz.showWidget(
            "text2d",
            cv.viz_WText("Random color cloud", (20, 20), 20,
                         cv.viz_Color().green()))
        viz.spinOnce(500, True)
Exemplo n.º 6
0
def tutorial3(camera_pov, filename):
    myWindow = cv.viz_Viz3d("Coordinate Frame")
    myWindow.showWidget("axe", cv.viz_WCoordinateSystem())

    cam_origin = (3.0, 3.0, 3.0)
    cam_focal_point = (3.0, 3.0, 2.0)
    cam_y_dir = (-1.0, 0.0, 0.0)
    camera_pose = cv.viz.makeCameraPose(cam_origin, cam_focal_point, cam_y_dir)
    transform = cv.viz.makeTransformToGlobal(
        (0.0, -1.0, 0.0), (-1.0, 0.0, 0.0), (0.0, 0.0, -1.0), cam_origin)
    dragon_cloud, _, _ = cv.viz.readCloud(filename)
    cloud_widget = cv.viz_WCloud(dragon_cloud, cv.viz_Color().green())
    cloud_pose = cv.viz_Affine3d()
    cloud_pose = cv.viz_Affine3d().rotate((0, np.pi / 2, 0)).translate(
        (0, 0, 3))
    cloud_pose_global = transform.product(cloud_pose)
    myWindow.showWidget("CPW_FRUSTUM",
                        cv.viz_WCameraPosition((0.889484, 0.523599)),
                        camera_pose)
    if not camera_pov:
        myWindow.showWidget("CPW", cv.viz_WCameraPosition(0.5), camera_pose)
    myWindow.showWidget("dragon", cloud_widget, cloud_pose_global)
    if camera_pov:
        myWindow.setViewerPose(camera_pose)