deepFashion3D icon indicating copy to clipboard operation
deepFashion3D copied to clipboard

Unaligned point clouds

Open LogWell opened this issue 4 years ago • 1 comments

Hi @kv2000 , in the data provided, why are feature line and scan not aligned? How to solve this problem?

Generally speaking, it is only necessary to record the corresponding vertex index on the scanning data. Why is the absolute point cloud of feature lines provided here?

Selection_002 Selection_001

LogWell avatar Sep 06 '21 06:09 LogWell

1-1

The above preview image is generated by the following code, which can be used to quickly check the problem data.

if 1:
    from glob import glob
    from natsort import natsorted

    from vedo import *
    # settings.screenshotTransparentBackground = True
    # settings.screeshotScale = 2

    vp = Plotter(axes=0, size=(800, 800), offscreen=1)

    path_dataset = "/media/[...]/dataset@DeepFashion3D"
    path_pfx_pc = path_dataset + "/deep_fashion_3d_point_cloud/point_cloud"
    path_pfx_FL = path_dataset + "/DF3D_Featurelines"

    path_mesh_ALL = natsorted(glob(path_pfx_pc + "/*/*.ply"), key=lambda y: y.lower())

    for path_mesh in path_mesh_ALL:
        print(path_mesh)
        path_render = path_mesh[:-4] + ".jpg"

        mesh1 = load(path_mesh).ps(2)
        mesh2 = mesh1.clone().rotateY(180).x(0.5).ps(2)
        mesh3 = mesh1.clone().y(-0.5).ps(2)
        mesh1.renderPointsAsSpheres(False)
        mesh2.renderPointsAsSpheres(False)
        mesh3.renderPointsAsSpheres(False)
        vp += mesh1
        vp += mesh2
        vp += mesh3
        
        string = path_mesh.rsplit("/", 1)[1] + ": " +  "#v=" + str(mesh1.NPoints())
        vp += Text2D(string, font='Courier', s=1.2)

        str_index = "/".join(path_mesh.rsplit("/", 2)[1:])[:-4]
        path_mesh_FL = natsorted(glob(path_pfx_FL + "/" + str_index + "/*.ply"), key=lambda y: y.lower())

        for i, path_mesh in enumerate(path_mesh_FL):
            mesh_i1 = load(path_mesh).c(i).y(-0.5).ps(3)
            mesh_i2 = mesh_i1.clone().c(i).x(0.5).y(-0.5).ps(3)
            mesh_i1.renderPointsAsSpheres(False)
            mesh_i2.renderPointsAsSpheres(False)    
            vp += mesh_i1
            vp += mesh_i2

        vp.show(zoom=1.2)
        screenshot(path_render)
        vp.clear()

        # exit()

LogWell avatar Sep 17 '21 07:09 LogWell