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=",") """"
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=',') """"
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)
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)
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)
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)
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)
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
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
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
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
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
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() """
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() """
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
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)
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)
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")
, [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")
#出力ディレクトリ作成 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]
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]
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)