static Int16Triple RunMC(BitMap3d bmp, string type) { watch.Reset(); watch.Start(); MCProcessor mc = new MCProcessor(bmp); Mesh mesh = mc.GenerateSurface(); watch.Stop(); Console.WriteLine("MC Run time : " + watch.ElapsedMilliseconds + "ms," + "v: " + mesh.GetVertexCount() + " f:" + mesh.GetFaceCount()); if (output) { PlyManager.Output(mesh, type + "_" + mesh.GetVertexCount() + "_" + mesh.GetFaceCount() + ".ply"); } return(new Int16Triple(mesh.GetVertexCount(), mesh.GetFaceCount(), 0)); }
private static void TestMC() { TestParms parm = TestParms.CreateParmsForPhantom(); BitMap3d bmp = new BitMap3d(parm.image.data, parm.image.width, parm.image.height, parm.image.depth); for (int i = 0; i < bmp.data.Length; i++) { if (bmp.data[i] >= parm.min && bmp.data[i] <= parm.max) { bmp.data[i] = BitMap3d.WHITE; } else { bmp.data[i] = BitMap3d.BLACK; } } MCProcessor mc = new MCProcessor(bmp); Mesh m = mc.GeneratorSurface(); PlyManager.Output(m, "test5.ply"); }
private static void Test() { BitMap3d bmp = new BitMap3d(301, 324, 56, BitMap3d.BLACK); bmp.ReadRaw("D://VTKproj//lobster.raw"); for (int i = 0; i < bmp.data.Length; i++) { if (bmp.data[i] >= 37 && bmp.data[i] <= 255) { bmp.data[i] = BitMap3d.WHITE; } else { bmp.data[i] = BitMap3d.BLACK; } } MCProcessor mc = new MCProcessor(bmp); Mesh m = mc.GeneratorSurface(); Console.WriteLine(m.Vertices.Count); Console.WriteLine(m.Faces.Count); PlyManager.Output(m, "test2.ply"); }