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