コード例 #1
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def test4():

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply("./data/cloth4ply/mrshape/ball%04d.ply" % 50)
    m2.read_ply("./data/cloth4ply/mrvert/cloth%04d.ply" % 50)

    print "fnum", m1.face_num

    v, f = mut.data5()
    # m1.input_data(v,f)
    v, f = mut.data6()
    # m2.input_data(v,f)

    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()

    # m1.write_ply('m1.ply')
    # m2.write_ply('m2.ply')

    # m1.check_local_axis_2(0,'chccklo',m2)

    dtemp = md.calc_f2f_distance_in_localcoord(m1, m2)
    re_dists = md.change_distanceList(dtemp)
    remesh = md.apply_distance(re_dists, m1)

    print "local dist", dtemp

    print "exchange", re_dists

    checkver = remesh.vertexes - m2.vertexes

    np.savetxt("checkdistance0000.txt", checkver, delimiter=",")

    md.set_scale(0.00000000000000001, -0.00000000000000001)
    color = md.dist2color2(checkver[0, :])
    print color
    remesh.write_color_ply("checkdist.ply", color)
    remesh.write_color_ply("red.ply", mut.makeRed(remesh.ver_num))

    std = np.std(checkver)
    print "std", std

    er = checkver / m2.vertexes
    er = np.absolute(er)
    print er

    print er.mean()
    print er.max()
    std = np.std(er)
    print "std", std

    np.savetxt("error0300.txt", er, delimiter=",")

    """"
コード例 #2
0
def test4():

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply("./data/cloth4ply/mrshape/ball%04d.ply" % 50)
    m2.read_ply("./data/cloth4ply/mrvert/cloth%04d.ply" % 50)

    print 'fnum', m1.face_num

    v, f = mut.data5()
    #m1.input_data(v,f)
    v, f = mut.data6()
    #m2.input_data(v,f)

    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()

    #m1.write_ply('m1.ply')
    #m2.write_ply('m2.ply')

    #m1.check_local_axis_2(0,'chccklo',m2)

    dtemp = md.calc_f2f_distance_in_localcoord(m1, m2)
    re_dists = md.change_distanceList(dtemp)
    remesh = md.apply_distance(re_dists, m1)

    print "local dist", dtemp

    print "exchange", re_dists

    checkver = remesh.vertexes - m2.vertexes

    np.savetxt("checkdistance0000.txt", checkver, delimiter=',')

    md.set_scale(0.00000000000000001, -0.00000000000000001)
    color = md.dist2color2(checkver[0, :])
    print color
    remesh.write_color_ply('checkdist.ply', color)
    remesh.write_color_ply('red.ply', mut.makeRed(remesh.ver_num))

    std = np.std(checkver)
    print 'std', std

    er = checkver / m2.vertexes
    er = np.absolute(er)
    print er

    print er.mean()
    print er.max()
    std = np.std(er)
    print 'std', std

    np.savetxt("error0300.txt", er, delimiter=',')
    """"
コード例 #3
0
def test8():
    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply("./data/reduction_data/mrshape/rdmove0000-shape.ply")
    m2.read_ply("./restore/ply/resotre0000.ply")

    m1.calc_all()
    m1.calc_local_coord()

    dist = md.calc_normalvec_distance(m1, m2)

    #dist = md.calc_f2f_distance_in_localcoord(m1,m2)
    md.printColorAsPly(m2, dist, 'restoreCheck0000.ply', if3=False)
コード例 #4
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def test8():
    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply("./data/reduction_data/mrshape/rdmove0000-shape.ply")
    m2.read_ply("./restore/ply/resotre0000.ply")

    m1.calc_all()
    m1.calc_local_coord()

    dist = md.calc_normalvec_distance(m1, m2)

    # dist = md.calc_f2f_distance_in_localcoord(m1,m2)
    md.printColorAsPly(m2, dist, "restoreCheck0000.ply", if3=False)
コード例 #5
0
def restoreMesh_visible(meshName, invdist):
    shape = m3d.model3d_changeLo()
    shape.read_ply(meshName)
    shape.calc_all()
    shape.calc_local_coord()

    return md.apply_distance(invdist, shape)
コード例 #6
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def restoreMesh_visible(meshName, invdist):
    shape = m3d.model3d_changeLo()
    shape.read_ply(meshName)
    shape.calc_all()
    shape.calc_local_coord()

    return md.apply_distance(invdist, shape)
コード例 #7
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def test2():

    m1 = m3d.model3d_changeLo()
    m1.read_ply("./data/cloth4ply/mrshape/ball0000.ply")

    """set output directry"""
    if os.path.exists(out) == False:
        os.mkdir(out)

    distances = calc_distances()
    a = distances[0]
    print a.shape
    c_ratio_all = np.empty(1)
    evr_all = np.empty(1)

    # print distances[0]

    trans_inv_list_allcomp = []
    trans_list_allcomp = []
    n_components_allcomp = []
    mean_allcomp = []

    for comp in xrange(1, comp_max):
        # calc pca use component 1 -> component max
        print "pca compornent:", comp

        c_ratio_all_temp, evr_all_temp, components, trans_inv_list, trans_list, means = calcPCAallFace(
            comp, distances, FlagTpData=True
        )

        c_ratio_all = c_ratio_all_temp
        evr_all = evr_all_temp

        if comp == useComp:
            trans_inv_list_allcomp.append(trans_inv_list)
            mean_allcomp.append(means)
            trans_list_allcomp.append(trans_list)
            n_components_allcomp.append(components)

        else:
            trans_inv_list_allcomp.append(None)
            mean_allcomp.append(None)
            trans_list_allcomp.append(None)
            n_components_allcomp.append(None)

        np.savetxt(out + "/" + "c_ratiocomp%02d.txt" % comp, c_ratio_all_temp, fmt="%.20f", delimiter=",")
        np.savetxt(out + "/" + "evrcomp%02d.txt" % comp, evr_all_temp, fmt="%.20f", delimiter=",")

    m = mean_allcomp[useComp - 1]
    t = trans_list_allcomp[useComp - 1]
    c = n_components_allcomp[useComp - 1]

    dataMake.setFrame(start_frame, frame)
    rts = dataMake.calcRotTranses("./data/cloth4ply/mrshape/ball%04d.ply")

    dataMakesAllface(distances, t, c, m, rts, progSkipFrame)

    # restoreMeshes(out,"./data/cloth4ply/mrshape/ball%04d.ply",trans_inv_list_allcomp[useComp - 1],m1.face_num)
    saveResultPCA(out, "./data/cloth4ply/mrshape/ball0000.ply", c_ratio_all, evr_all)
コード例 #8
0
def readMeshes(meshName1, meshName2, AveFlag=False):
    """meshName2 - meshName2"""

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply(meshName1)
    m2.read_ply(meshName2)

    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()

    dtemp = md.calc_f2f_distance_in_localcoord(m1, m2)

    if AveFlag == True:
        distances_ave = md.averageDistnaceList(dtemp)
        return distances_ave

    distances = md.change_distanceList(dtemp)
    return distances
コード例 #9
0
def test6():

    vi = md.readvisible("./data/visible/visibleFace0319.txt")
    m = m3d.model3d_changeLo()
    m.read_ply("./data/reduction_data/mrvert/rdmove0319-vert.ply")
    v, f = md.divide_face(m)
    c = md.showVisibleAsColor(vi)
    c2 = md.color2color_x_3(c)
    print v.shape
    mut.save_ply_file_color("visibleCheck.ply", v, f, c2)

    return 0
コード例 #10
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def test6():

    vi = md.readvisible("./data/visible/visibleFace0319.txt")
    m = m3d.model3d_changeLo()
    m.read_ply("./data/reduction_data/mrvert/rdmove0319-vert.ply")
    v, f = md.divide_face(m)
    c = md.showVisibleAsColor(vi)
    c2 = md.color2color_x_3(c)
    print v.shape
    mut.save_ply_file_color("visibleCheck.ply", v, f, c2)

    return 0
コード例 #11
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def readMeshes(meshName1, meshName2, AveFlag=False):
    """meshName2 - meshName2"""

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()

    m1.read_ply(meshName1)
    m2.read_ply(meshName2)

    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()

    dtemp = md.calc_f2f_distance_in_localcoord(m1, m2)

    if AveFlag == True:
        distances_ave = md.averageDistnaceList(dtemp)
        return distances_ave

    distances = md.change_distanceList(dtemp)
    return distances
コード例 #12
0
def test3():

    m1 = m3d.model3d_changeLo()
    m1.read_ply("./data/reduction_data/mrshape/rdmove0000-shape.ply")
    """set output directry"""
    if os.path.exists(out) == False:
        os.mkdir(out)

    visibleList = makevisibleMatrix()

    distances = calc_distances(visibleList, VisibleFlag=True)

    #for i in xrange(len(distances)):
    #    a = distances[i]
    #    #print 'a',a

    c_ratio_all = np.empty(1)
    evr_all = np.empty(1)
    trans_inv_list_allcomp = []

    for comp in xrange(1, comp_max):
        # calc pca use component 1 -> component max
        print "pca compornent:", comp

        c_ratio_all_temp, evr_all_temp, trans_inv_list = calcPCAallFace(
            comp, distances, visibleList, VisibleFlag=True, FlagTpData=True)

        c_ratio_all = c_ratio_all_temp
        evr_all = evr_all_temp

        if comp == useComp:
            trans_inv_list_allcomp.append(trans_inv_list)

        np.savetxt(out + "/" + "c_ratiocomp%02d.txt" % comp,
                   c_ratio_all_temp,
                   fmt='%.10f',
                   delimiter=',')
        np.savetxt(out + "/" + "evrcomp%02d.txt" % comp,
                   evr_all_temp,
                   fmt='%.10f',
                   delimiter=',')

    redist = restoreVisibleDistance(trans_inv_list_allcomp[0], visibleList,
                                    1000)

    restoreMeshes_visible(
        out, "./data/reduction_data/mrshape/rdmove%04d-shape.ply", redist,
        1000)
    saveResultPCA(out, "./data/reduction_data/mrshape/rdmove0000-shape.ply",
                  c_ratio_all, evr_all)

    return 0
コード例 #13
0
def test2():
    t2 = m3d.model3d_changeLo()

    v, f = data2()

    t2.input_data(v, f)
    t2.calc_all()
    t2.write_ply("test_kimu.ply")

    print "normals"
    print t2.f_normals
    print "center"
    print t2.face_centers

    t2.calc_local_coord()
    """
コード例 #14
0
def test2():
    t2 = m3d.model3d_changeLo()

    v,f = data2()

    t2.input_data(v,f)
    t2.calc_all()
    t2.write_ply("test_kimu.ply")

    print "normals"
    print t2.f_normals
    print "center"
    print t2.face_centers

    t2.calc_local_coord()

    """
コード例 #15
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def test3():

    m1 = m3d.model3d_changeLo()
    m1.read_ply("./data/reduction_data/mrshape/rdmove0000-shape.ply")

    """set output directry"""
    if os.path.exists(out) == False:
        os.mkdir(out)

    visibleList = makevisibleMatrix()

    distances = calc_distances(visibleList, VisibleFlag=True)

    # for i in xrange(len(distances)):
    #    a = distances[i]
    #    #print 'a',a

    c_ratio_all = np.empty(1)
    evr_all = np.empty(1)
    trans_inv_list_allcomp = []

    for comp in xrange(1, comp_max):
        # calc pca use component 1 -> component max
        print "pca compornent:", comp

        c_ratio_all_temp, evr_all_temp, trans_inv_list = calcPCAallFace(
            comp, distances, visibleList, VisibleFlag=True, FlagTpData=True
        )

        c_ratio_all = c_ratio_all_temp
        evr_all = evr_all_temp

        if comp == useComp:
            trans_inv_list_allcomp.append(trans_inv_list)

        np.savetxt(out + "/" + "c_ratiocomp%02d.txt" % comp, c_ratio_all_temp, fmt="%.10f", delimiter=",")
        np.savetxt(out + "/" + "evrcomp%02d.txt" % comp, evr_all_temp, fmt="%.10f", delimiter=",")

    redist = restoreVisibleDistance(trans_inv_list_allcomp[0], visibleList, 1000)

    restoreMeshes_visible(out, "./data/reduction_data/mrshape/rdmove%04d-shape.ply", redist, 1000)
    saveResultPCA(out, "./data/reduction_data/mrshape/rdmove0000-shape.ply", c_ratio_all, evr_all)

    return 0
コード例 #16
0
ファイル: m2m_pca.py プロジェクト: Ryosukekimura/linalg_test
def saveResultPCA(outdir, applyMeshName, c_ratio_all, evr_all):

    m = m3d.model3d_changeLo()
    m.read_ply(applyMeshName)
    nv, nf = md.divide_face(m)

    dir_r = outdir + "colorPly/c_ratio"
    dir_e = outdir + "colorPly/c_evr"
    mut.mkdir_p(dir_r)
    mut.mkdir_p(dir_e)

    for i in xrange(comp_max - 1):
        md.set_scale(0, 1)
        col = md.dist2color2(c_ratio_all[:, i])
        col3 = md.color2color_x_3(col)

        mut.save_ply_file_color(dir_r + "/" + "ratio_c%03dframe0000.ply" % i, nv, nf, col3)

        col = md.dist2color2(evr_all[:, i])
        col3 = md.color2color_x_3(col)

        mut.save_ply_file_color(dir_e + "/" + "evr_c%03dframe0000.ply" % i, nv, nf, col3)
コード例 #17
0
def saveResultPCA(outdir, applyMeshName, c_ratio_all, evr_all):

    m = m3d.model3d_changeLo()
    m.read_ply(applyMeshName)
    nv, nf = md.divide_face(m)

    dir_r = outdir + "colorPly/c_ratio"
    dir_e = outdir + "colorPly/c_evr"
    mut.mkdir_p(dir_r)
    mut.mkdir_p(dir_e)

    for i in xrange(comp_max - 1):
        md.set_scale(0, 1)
        col = md.dist2color2(c_ratio_all[:, i])
        col3 = md.color2color_x_3(col)

        mut.save_ply_file_color(dir_r + "/" + "ratio_c%03dframe0000.ply" % i,
                                nv, nf, col3)

        col = md.dist2color2(evr_all[:, i])
        col3 = md.color2color_x_3(col)

        mut.save_ply_file_color(dir_e + "/" + "evr_c%03dframe0000.ply" % i, nv,
                                nf, col3)
コード例 #18
0
    return v, f


def data6():
    v = np.array([[1, 1, 1, 1], [0, 0, 1, -1], [0, -1, 0, 0]])

    f = np.array([[0, 0], [1, 1], [2, 3]])
    return v, f


def red():
    c = np.array([[255, 0, 0, 0], [0, 255, 255, 0], [0, 0, 0, 0]])
    return c


if __name__ == "__main__":

    v1, f1 = data3()
    v2, f2 = data4()

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()
    m1.input_data(v1, f1)
    m2.input_data(v2, f2)
    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()
    m2.calc_local_coord()
    m2.write_ply("deform_pre.ply")
    m2.check_local_axis(0, "local_test")
コード例 #19
0
                , [0, 0, 1, -1]
                , [0, -1, 0, 0]])

    f = np.array([[0, 0],
                  [1, 1],
                  [2, 3]])
    return v,f

def red():
    c = np.array([[255, 0,  0,   0]
                 ,[0,   255,255,   0]
                 ,[0,   0,  0, 0]])
    return c

if __name__ == "__main__":

    v1,f1 = data3()
    v2,f2 = data4()

    m1 = m3d.model3d_changeLo()
    m2 = m3d.model3d_changeLo()
    m1.input_data(v1,f1)
    m2.input_data(v2,f2)
    m1.calc_all()
    m2.calc_all()
    m1.calc_local_coord()
    m2.calc_local_coord()
    m2.write_ply("deform_pre.ply")
    m2.check_local_axis(0,"local_test")

コード例 #20
0
    #出力ディレクトリ作成
    if os.path.exists(outdir) == False:
        os.mkdir(outdir)

    start = time.time()

    local_dists_r = []

    for x in xrange(face_num):
        local_dists_r.append(np.empty([9, fnum]))

    for frame in xrange(fnum):

        print "frame:", frame

        model1 = m3d.model3d_changeLo()
        model2 = m3d.model3d_changeLo()

        model1.read_ply(inputdir + "/" + "move%02d-shape.ply" % fnum)
        model2.read_ply(inputdir + "/" + "move%02d-vert.ply" % fnum)

        model1.calc_all()
        model2.calc_all()
        model1.calc_local_coord()

        dist, dist_r = calc_one_frame(model1, model2)
        local_dists.append(dist)

        for x in xrange(face_num):
            local_dists_r[x] = np.append(local_dists_r[x], dist_r[x])
            print local_dists_r[x]
コード例 #21
0
    if os.path.exists(outdir) == False :
        os.mkdir(outdir)

    start = time.time()

    local_dists_r = []

    for x in xrange(face_num):
        local_dists_r.append(np.empty([9,fnum]))


    for frame in xrange(fnum):

        print "frame:",frame

        model1 = m3d.model3d_changeLo()
        model2 = m3d.model3d_changeLo()

        model1.read_ply(inputdir + "/" + "move%02d-shape.ply" % fnum)
        model2.read_ply(inputdir + "/" + "move%02d-vert.ply" % fnum)

        model1.calc_all()
        model2.calc_all()
        model1.calc_local_coord()

        dist,dist_r = calc_one_frame(model1,model2)
        local_dists.append(dist)

        for x in xrange(face_num):
            local_dists_r[x] = np.append(local_dists_r[x],dist_r[x])
            print  local_dists_r[x]
コード例 #22
0
def test2():

    m1 = m3d.model3d_changeLo()
    m1.read_ply("./data/cloth4ply/mrshape/ball0000.ply")
    """set output directry"""
    if os.path.exists(out) == False:
        os.mkdir(out)

    distances = calc_distances()
    a = distances[0]
    print a.shape
    c_ratio_all = np.empty(1)
    evr_all = np.empty(1)

    #print distances[0]

    trans_inv_list_allcomp = []
    trans_list_allcomp = []
    n_components_allcomp = []
    mean_allcomp = []

    for comp in xrange(1, comp_max):
        # calc pca use component 1 -> component max
        print "pca compornent:", comp

        c_ratio_all_temp, evr_all_temp, components, trans_inv_list, trans_list, means = calcPCAallFace(
            comp, distances, FlagTpData=True)

        c_ratio_all = c_ratio_all_temp
        evr_all = evr_all_temp

        if comp == useComp:
            trans_inv_list_allcomp.append(trans_inv_list)
            mean_allcomp.append(means)
            trans_list_allcomp.append(trans_list)
            n_components_allcomp.append(components)

        else:
            trans_inv_list_allcomp.append(None)
            mean_allcomp.append(None)
            trans_list_allcomp.append(None)
            n_components_allcomp.append(None)

        np.savetxt(out + "/" + "c_ratiocomp%02d.txt" % comp,
                   c_ratio_all_temp,
                   fmt='%.20f',
                   delimiter=',')
        np.savetxt(out + "/" + "evrcomp%02d.txt" % comp,
                   evr_all_temp,
                   fmt='%.20f',
                   delimiter=',')

    m = mean_allcomp[useComp - 1]
    t = trans_list_allcomp[useComp - 1]
    c = n_components_allcomp[useComp - 1]

    dataMake.setFrame(start_frame, frame)
    rts = dataMake.calcRotTranses("./data/cloth4ply/mrshape/ball%04d.ply")

    dataMakesAllface(distances, t, c, m, rts, progSkipFrame)

    #restoreMeshes(out,"./data/cloth4ply/mrshape/ball%04d.ply",trans_inv_list_allcomp[useComp - 1],m1.face_num)
    saveResultPCA(out, "./data/cloth4ply/mrshape/ball0000.ply", c_ratio_all,
                  evr_all)