當前位置: 首頁>>代碼示例>>Python>>正文


Python open3d.Vector3dVector方法代碼示例

本文整理匯總了Python中open3d.Vector3dVector方法的典型用法代碼示例。如果您正苦於以下問題:Python open3d.Vector3dVector方法的具體用法?Python open3d.Vector3dVector怎麽用?Python open3d.Vector3dVector使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在open3d的用法示例。


在下文中一共展示了open3d.Vector3dVector方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: vis_pc

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def vis_pc(xyz, color_axis=-1, rgb=None):
    # TODO move to the other module and do import in the module
    import open3d
    pcd = open3d.PointCloud()
    pcd.points = open3d.Vector3dVector(xyz)

    if color_axis >= 0:
        if color_axis == 3:
            axis_vis = np.arange(0, xyz.shape[0], dtype=np.float32)
        else:
            axis_vis = xyz[:, color_axis]
        min_ = np.min(axis_vis)
        max_ = np.max(axis_vis)

        colors = cm.gist_rainbow((axis_vis - min_) / (max_ - min_))[:, 0:3]
        pcd.colors = open3d.Vector3dVector(colors)
    if rgb is not None:
        pcd.colors = open3d.Vector3dVector(rgb)

    open3d.draw_geometries([pcd]) 
開發者ID:eldar,項目名稱:differentiable-point-clouds,代碼行數:22,代碼來源:visualise.py

示例2: do_icp

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def do_icp(self, name1, name2, method, init=np.eye(4), radius=0.2, constrain=False):
        pc1 = o3.geometry.PointCloud()
        pc1.points = o3.Vector3dVector(self.points[name1].points[:, :3])
        pc2 = o3.geometry.PointCloud()
        pc2.points = o3.Vector3dVector(self.points[name2].points[:, :3])

        start = time.time()
        sys.__stdout__.write(method + '\n')
        if method == 'p2p':
            reg_result = self._do_icp_p2p(pc1, pc2, radius, init, constrain=constrain)
        elif method == 'global':
            reg_result = self._do_icp_global(pc1, pc2, constrain=constrain)
        elif method == 'goicp':
            reg_result = self._do_icp_goicp(self.points[name1].points[:, :3], self.points[name2].points[:, :3], constrain=constrain)
        elif method == 'fast_global':
            reg_result = self._do_icp_fast_global(pc1, pc2, constrain=constrain)

        print(f'{method} {name1}->{name2} icp registration took {time.time() - start:.3} sec.', reg_result.transformation[:3, 3])

        before = o3.evaluate_registration(pc1, pc2, 0.02, init)
        after = o3.evaluate_registration(pc1, pc2, 0.02, reg_result.transformation)
        return [reg_result, before, after] 
開發者ID:grossjohannes,項目名稱:AlignNet-3D,代碼行數:24,代碼來源:pointcloud.py

示例3: downsample_point_clouds

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def downsample_point_clouds():
    cfg = parse_arguments()

    vox_size = cfg.downsample_voxel_size
    synth_set = cfg.synth_set

    inp_dir = os.path.join(cfg.inp_dir, synth_set)
    files = glob.glob('{}/*.mat'.format(inp_dir))

    out_dir = cfg.out_dir
    out_synthset = os.path.join(out_dir, cfg.synth_set)
    mkdir_if_missing(out_synthset)

    for k, model_file in enumerate(files):
        print("{}/{}".format(k, len(files)))

        file_name = os.path.basename(model_file)
        sample_name, _ = os.path.splitext(file_name)

        obj = scipy.io.loadmat(model_file)

        out_filename = "{}/{}.mat".format(out_synthset, sample_name)
        if os.path.isfile(out_filename):
            print("already exists:", sample_name)
            continue

        Vgt = obj["points"]

        pcd = open3d.PointCloud()
        pcd.points = open3d.Vector3dVector(Vgt)
        downpcd = open3d.voxel_down_sample(pcd, voxel_size=vox_size)
        down_xyz = np.asarray(downpcd.points)
        scipy.io.savemat(out_filename, {"points": down_xyz}) 
開發者ID:eldar,項目名稱:differentiable-point-clouds,代碼行數:35,代碼來源:downsample_gt.py

示例4: draw_registration_result

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def draw_registration_result(src, trgt):
    source = open3d.PointCloud()
    source.points = open3d.Vector3dVector(src)
    target = open3d.PointCloud()
    target.points = open3d.Vector3dVector(trgt)
    source.paint_uniform_color([1, 0.706, 0])
    target.paint_uniform_color([0, 0.651, 0.929])
    open3d.draw_geometries([source, target]) 
開發者ID:eldar,項目名稱:differentiable-point-clouds,代碼行數:10,代碼來源:compute_alignment.py

示例5: open3d_icp

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def open3d_icp(src, trgt, init_rotation=np.eye(3, 3)):
    source = open3d.PointCloud()
    source.points = open3d.Vector3dVector(src)

    target = open3d.PointCloud()
    target.points = open3d.Vector3dVector(trgt)

    init_rotation_4x4 = np.eye(4, 4)
    init_rotation_4x4[0:3, 0:3] = init_rotation

    threshold = 0.2
    reg_p2p = open3d.registration_icp(source, target, threshold, init_rotation_4x4,
                                    open3d.TransformationEstimationPointToPoint())

    return reg_p2p 
開發者ID:eldar,項目名稱:differentiable-point-clouds,代碼行數:17,代碼來源:compute_alignment.py

示例6: load_pountclouds

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def load_pountclouds(file_idx, cfg, return_numpy=False):
    ps1 = np.load(f'{cfg.data.basepath}/pointcloud1/{str(file_idx).zfill(8)}.npy')[:, :3]
    ps2 = np.load(f'{cfg.data.basepath}/pointcloud2/{str(file_idx).zfill(8)}.npy')[:, :3]
    pc1_centroid = ps1.mean(axis=0)
    if return_numpy:
        return ps1, ps2, pc1_centroid
    pc1 = o3.geometry.PointCloud()
    pc1.points = o3.Vector3dVector(ps1)
    pc2 = o3.geometry.PointCloud()
    pc2.points = o3.Vector3dVector(ps2)
    return pc1, pc2, pc1_centroid 
開發者ID:grossjohannes,項目名稱:AlignNet-3D,代碼行數:13,代碼來源:icp.py

示例7: main

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def main():
    bot = Robot("locobot")
    vis = open3d.Visualizer()
    vis.create_window("3D Map")
    pcd = open3d.PointCloud()
    coord = open3d.create_mesh_coordinate_frame(1, [0, 0, 0])
    vis.add_geometry(pcd)
    vis.add_geometry(coord)
    # We update the viewer every a few seconds
    update_time = 4
    while True:
        start_time = time.time()
        pts, colors = bot.base.base_state.vslam.get_3d_map()
        pcd.clear()
        # note that open3d.Vector3dVector is slow
        pcd.points = open3d.Vector3dVector(pts)
        pcd.colors = open3d.Vector3dVector(colors / 255.0)
        vis.update_geometry()
        vis.poll_events()
        vis.update_renderer()
        s_t = time.time()
        while time.time() - s_t < update_time:
            vis.poll_events()
            vis.update_renderer()
            time.sleep(0.1)
        end_time = time.time()
        process_time = end_time - start_time
        print("Updating every {0:.2f}s".format(process_time)) 
開發者ID:facebookresearch,項目名稱:pyrobot,代碼行數:30,代碼來源:vis_3d_map.py

示例8: main

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def main():
    parser = argparse.ArgumentParser(description="Argument Parser")
    parser.add_argument(
        "--floor_height", type=float, default=0.03, help="the z coordinate of the floor"
    )
    args = parser.parse_args()
    np.set_printoptions(precision=4, suppress=True)
    bot = Robot("locobot")
    bot.camera.set_pan_tilt(0, 0.7, wait=True)
    bot.arm.go_home()
    bot.arm.set_joint_positions([1.96, 0.52, -0.51, 1.67, 0.01], plan=False)
    vis = open3d.Visualizer()
    vis.create_window("3D Map")
    pcd = open3d.PointCloud()
    coord = open3d.create_mesh_coordinate_frame(1, [0, 0, 0])
    vis.add_geometry(pcd)
    vis.add_geometry(coord)
    while True:
        pts, colors = bot.camera.get_current_pcd(in_cam=False)
        pts, colors = filter_points(pts, colors, z_lowest=args.floor_height)
        pcd.clear()
        # note that open3d.Vector3dVector is slow
        pcd.points = open3d.Vector3dVector(pts)
        pcd.colors = open3d.Vector3dVector(colors / 255.0)
        vis.update_geometry()
        vis.poll_events()
        vis.update_renderer()
        time.sleep(0.1) 
開發者ID:facebookresearch,項目名稱:pyrobot,代碼行數:30,代碼來源:realtime_point_cloud.py

示例9: main

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def main():
    bot = Robot("kinect2")
    vis = open3d.Visualizer()
    vis.create_window("3D Map")
    pcd = open3d.PointCloud()
    coord = open3d.create_mesh_coordinate_frame(1, [0, 0, 0])
    vis.add_geometry(pcd)
    vis.add_geometry(coord)
    # We update the viewer every a few seconds
    update_time = 4
    while True:
        start_time = time.time()
        pts, colors = bot.camera.get_current_pcd()
        pcd.clear()
        # note that open3d.Vector3dVector is slow
        pcd.points = open3d.Vector3dVector(pts)
        pcd.colors = open3d.Vector3dVector(colors / 255.0)
        vis.update_geometry()
        vis.poll_events()
        vis.update_renderer()
        s_t = time.time()
        while time.time() - s_t < update_time:
            vis.poll_events()
            vis.update_renderer()
            time.sleep(0.1)
        end_time = time.time()
        process_time = end_time - start_time
        print("Updating every {0:.2f}s".format(process_time)) 
開發者ID:facebookresearch,項目名稱:pyrobot,代碼行數:30,代碼來源:vis_point_cloud.py

示例10: create_wire_box

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def create_wire_box(edgelengths, color=[0.0, 0.0, 0.0]):
    lineset = o3.LineSet()
    x, y, z = edgelengths
    lineset.points = o3.Vector3dVector([[0, 0, 0], [x, 0, 0], [0, y, 0], 
        [x, y, 0], [0, 0, z], [x, 0, z], [0, y, z], [x, y, z]])
    lineset.lines = o3.Vector2iVector([[0, 1], [1, 3], [3, 2], [2, 0],
        [0, 4], [1, 5], [3, 7], [2, 6],
        [4, 5], [5, 7], [7, 6], [6, 4]])
    lineset.colors = o3.Vector3dVector(np.tile(color, [len(lineset.lines), 1]))
    return lineset 
開發者ID:acschaefer,項目名稱:polex,代碼行數:12,代碼來源:util.py

示例11: xyzi2pc

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def xyzi2pc(xyz, intensities=None):
    pc = o3.PointCloud()
    pc.points = o3.Vector3dVector(xyz)
    if intensities is not None:
        pc.colors = o3.Vector3dVector(intensity2color(intensities / 255.0))
    return pc 
開發者ID:acschaefer,項目名稱:polex,代碼行數:8,代碼來源:util.py

示例12: load_snapshot

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def load_snapshot(sessionname):
    cloud = o3.PointCloud()
    trajectory = o3.LineSet()
    with np.load(os.path.join(resultdir, sessionname, snapshotfile)) as data:
        cloud.points = o3.Vector3dVector(data['points'])
        cloud.colors = o3.Vector3dVector(
            util.intensity2color(data['intensities'] / 255.0))
        
        trajectory.points = o3.Vector3dVector(data['trajectory'])
        lines = np.reshape(range(data['trajectory'].shape[0] - 1), [-1, 1]) \
                + [0, 1]
        trajectory.lines = o3.Vector2iVector(lines)
        trajectory.colors = o3.Vector3dVector(
            np.tile([0.0, 0.5, 0.0], [lines.shape[0], 1]))
    return cloud, trajectory 
開發者ID:acschaefer,項目名稱:polex,代碼行數:17,代碼來源:pynclt.py

示例13: save_local_maps

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def save_local_maps(seq):
    print(seq)
    sequence = dataset.sequence(seq)
    seqdir = os.path.join('kitti', '{:03d}'.format(seq))
    util.makedirs(seqdir)
    istart, imid, iend = get_map_indices(sequence)
    maps = []
    with progressbar.ProgressBar(max_value=len(iend)) as bar:
        for i in range(len(iend)):
            scans = []
            for idx, val in enumerate(range(istart[i], iend[i])):
                velo = sequence.get_velo(val)
                scan = o3.PointCloud()
                scan.points = o3.Vector3dVector(velo[:, :3])
                scan.colors = o3.Vector3dVector(
                    util.intensity2color(velo[:, 3]))
                scans.append(scan)

            T_m_w = T_m_mc.dot(T_mc_cam0).dot(
                util.invert_ht(sequence.poses[imid[i]]))
            T_w_velo = np.matmul(
                sequence.poses[istart[i]:iend[i]], sequence.calib.T_cam0_velo)
            T_m_velo = np.matmul(T_m_w, T_w_velo)
            occupancymap = mapping.occupancymap(
                scans, T_m_velo, mapshape, mapsize)
            poleparams = poles.detect_poles(occupancymap, mapsize)

            # accuscan = o3.PointCloud()
            # for j in range(len(scans)):
            #     scans[j].transform(T_w_velo[j])
            #     accuscan.points.extend(scans[j].points)
            # o3.draw_geometries([accuscan])

            # import ndshow
            # ndshow.matshow(occupancymap.transpose([2, 0, 1]))

            map = {'poleparams': poleparams, 
                'istart': istart[i], 'imid': imid[i], 'iend': iend[i]}
            maps.append(map)
            bar.update(i)
    np.savez(os.path.join(seqdir, localmapfile), maps=maps) 
開發者ID:acschaefer,項目名稱:polex,代碼行數:43,代碼來源:kittipoles.py

示例14: view_local_maps

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def view_local_maps(seq):
    sequence = dataset.sequence(seq)
    seqdir = os.path.join('kitti', '{:03d}'.format(seq))
    with np.load(os.path.join(seqdir, localmapfile)) as data:
        for i, map in enumerate(data['maps']):
            T_w_m = sequence.poses[map['imid']].dot(T_cam0_mc).dot(T_mc_m)
            mapboundsvis = util.create_wire_box(mapextent, [0.0, 0.0, 1.0])
            mapboundsvis.transform(T_w_m)
        
            polemap = []
            for poleparams in map['poleparams']:
                x, y, zs, ze, a, _ = poleparams
                pole = util.create_wire_box(
                    [a, a, ze - zs], color=[1.0, 1.0, 0.0])
                T_m_p = np.identity(4)
                T_m_p[:3, 3] = [x - 0.5 * a, y - 0.5 * a, zs]
                pole.transform(T_w_m.dot(T_m_p))
                polemap.append(pole)

            accucloud = o3.PointCloud()
            for j in range(map['istart'], map['iend']):
                velo = sequence.get_velo(j)
                cloud = o3.PointCloud()
                cloud.points = o3.Vector3dVector(velo[:, :3])
                cloud.colors = o3.Vector3dVector(
                    util.intensity2color(velo[:, 3]))
                cloud.transform(
                    sequence.poses[j].dot(sequence.calib.T_cam0_velo))
                accucloud.points.extend(cloud.points)
                accucloud.colors.extend(cloud.colors)
            o3.draw_geometries([accucloud, mapboundsvis] + polemap) 
開發者ID:acschaefer,項目名稱:polex,代碼行數:33,代碼來源:kittipoles.py

示例15: initializePointCoud

# 需要導入模塊: import open3d [as 別名]
# 或者: from open3d import Vector3dVector [as 別名]
def initializePointCoud(pts):

    pcd = o3d.PointCloud()
    pcd.points = o3d.Vector3dVector(pts)

    return pcd 
開發者ID:goncalo120,項目名稱:3DRegNet,代碼行數:8,代碼來源:setupPly.py


注:本文中的open3d.Vector3dVector方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。