private void ReadBMP() { // Path to vtk data must be set as an environment variable // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0" vtkTesting test = vtkTesting.New(); string root = test.GetDataRoot(); string filePath = System.IO.Path.Combine(root, @"Data\masonry.bmp"); //Read the image vtkBMPReader reader = vtkBMPReader.New(); if (reader.CanReadFile(filePath) == 0) { MessageBox.Show("Cannot read file \"" + filePath + "\"", "Error", MessageBoxButtons.OK); return; } reader.SetFileName(filePath); reader.Update(); // Visualize vtkImageViewer2 imageViewer = vtkImageViewer2.New(); imageViewer.SetInputConnection(reader.GetOutputPort()); // get a reference to the renderwindow of our renderWindowControl1 vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow; // renderer vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer(); // set background color renderer.SetBackground(0.2, 0.3, 0.4); imageViewer.SetRenderer(renderer); renderer.ResetCamera(); }
private void DrawTexturePlane() { //load in the texture map vtkBMPReader bmpReader = vtkBMPReader.New(); bmpReader.SetFileName(@"..\..\Data\masonry.bmp"); vtkTexture atext = vtkTexture.New(); atext.SetInputConnection(bmpReader.GetOutputPort()); atext.InterpolateOn(); //create a plane source and actor vtkPlaneSource plane = vtkPlaneSource.New(); plane.SetPoint1(0, 0, 0); vtkPolyDataMapper planeMapper = vtkPolyDataMapper.New(); planeMapper.SetInputConnection(plane.GetOutputPort()); vtkActor planeActor = vtkActor.New(); planeActor.SetMapper(planeMapper); planeActor.SetTexture(atext); vtkRenderer renderer = vtkRenderer.New(); vtkRenderWindow renWin = myRenderWindowControl.RenderWindow; renWin.AddRenderer(renderer); renderer.AddActor(planeActor); }
/// <summary> /// 进行可视化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void VisiualizeSlicesWnd_Load(object sender, EventArgs e) { vtkRenderer renderer = rwcShowSlices.RenderWindow.GetRenderers().GetFirstRenderer(); renderer.SetBackground(1, 1, 1); //CuteTools.ShowImageSeries(fnFormat, height, width, startIndex, endIndex, renderer); //return; vtkBMPReader reader = vtkBMPReader.New(); reader.SetFilePattern(fnFormat); reader.SetDataExtent(0, height - 1, 0, width - 1, startIndex, endIndex); reader.SetDataScalarTypeToUnsignedChar(); reader.Update(); vol = vtkVolume.New(); vtkFixedPointVolumeRayCastMapper texMapper = vtkFixedPointVolumeRayCastMapper.New(); texMapper.SetInput(reader.GetOutput()); vol.SetMapper(texMapper); colorTransferFunction = vtkColorTransferFunction.New(); colorTransferFunction.AddRGBPoint(0, tbR1.Value * 1.0 / 255, tbG1.Value * 1.0 / 255, tbB1.Value * 1.0 / 255); colorTransferFunction.AddRGBPoint(1, tbR2.Value * 1.0 / 255, tbG2.Value * 1.0 / 255, tbB2.Value * 1.0 / 255); colorTransferFunction.ClampingOn(); vpro = vtkVolumeProperty.New(); vtkPiecewiseFunction compositeOpacity = vtkPiecewiseFunction.New(); compositeOpacity.AddPoint(0, 0); //compositeOpacity.AddPoint(120.0, 0.5); compositeOpacity.AddPoint(255.0, 1); compositeOpacity.ClampingOn(); vpro.SetScalarOpacity(compositeOpacity); vpro.SetColor(colorTransferFunction); //vpro.SetInterpolationTypeToLinear(); vpro.SetInterpolationTypeToNearest(); //vpro.ShadeOn(); vol.SetProperty(vpro); //画轴距图 vol.SetOrientation(45, 45, 0); //rwcShowSlices.RenderWindow.GetRenderers().GetFirstRenderer().AddVolume( vol ); rwcShowSlices.Refresh(); }
private void WriteBMP() { // Path to vtk data must be set as an environment variable // VTK_DATA_ROOT = "C:\VTK\vtkdata-5.8.0" vtkTesting test = vtkTesting.New(); string root = test.GetDataRoot(); string filePath = System.IO.Path.Combine(root, @"Data\test_bmp.bmp"); int[] extent = new int[] { 1, 10, 1, 10, 1, 10 }; vtkImageCanvasSource2D imageSource = vtkImageCanvasSource2D.New(); imageSource.SetScalarTypeToUnsignedChar(); imageSource.SetExtent(0, 9, 0, 9, 0, 0); imageSource.SetNumberOfScalarComponents(3); imageSource.SetDrawColor(0, 0, 0, 0); imageSource.FillBox(0, 9, 0, 9); imageSource.SetDrawColor(255, 0, 0, 0); imageSource.FillBox(5, 7, 5, 7); imageSource.Update(); vtkBMPWriter bmpWriter = vtkBMPWriter.New(); bmpWriter.SetFileName(filePath); bmpWriter.SetInputConnection(imageSource.GetOutputPort()); bmpWriter.Write(); // Read and display file for verification that it was written correctly vtkBMPReader reader = vtkBMPReader.New(); if (reader.CanReadFile(filePath) == 0) { MessageBox.Show("Cannot read file \"" + filePath + "\"", "Error", MessageBoxButtons.OK); return; } reader.SetFileName(filePath); reader.Update(); // Visualize vtkImageViewer2 imageViewer = vtkImageViewer2.New(); imageViewer.SetInputConnection(reader.GetOutputPort()); // get a reference to the renderwindow of our renderWindowControl1 vtkRenderWindow renderWindow = renderWindowControl1.RenderWindow; // renderer vtkRenderer renderer = renderWindow.GetRenderers().GetFirstRenderer(); // set background color renderer.SetBackground(0.2, 0.3, 0.4); imageViewer.SetRenderer(renderer); renderer.ResetCamera(); }
/// <summary> /// Load image files into vtkImageData. /// </summary> /// <param name="path">Path to images.</param> /// <param name="extension">Image extension.</param> /// <returns></returns> public static vtkImageData VTKLoader(string path, string extension) { /*DEPRECATED!!*/ //Output vtkImageData data = vtkImageData.New(); //Get files from path DirectoryInfo d = new DirectoryInfo(@path); FileInfo[] files = d.GetFiles(); vtkStringArray allfiles = vtkStringArray.New(); //Iterate over files and read image data foreach (FileInfo file in files) { //Fullfile string fullfile = Path.Combine(path, file.Name); allfiles.InsertNextValue(fullfile); } if (extension == ".png") { vtkPNGReader reader = vtkPNGReader.New(); reader.SetFileNames(allfiles); reader.Update(); data = reader.GetOutput(); reader.Dispose(); } if (extension == ".jpg") { vtkJPEGReader reader = vtkJPEGReader.New(); reader.SetFileNames(allfiles); reader.Update(); data = reader.GetOutput(); reader.Dispose(); } if (extension == ".bmp") { vtkBMPReader reader = vtkBMPReader.New(); reader.SetFileNames(allfiles); reader.Update(); data = reader.GetOutput(); reader.Dispose(); } data.SetScalarTypeToUnsignedChar(); data.Update(); return(data); }
/// <summary> /// /// <summary> /// 用体绘制的方法绘制一系列的图像 /// </summary> /// <param name="format">图像文件的字符串格式</param> /// <param name="height">一幅图像的高度</param> /// <param name="width">高度</param> /// <param name="startIndex">起始index</param> /// <param name="endIndex">末尾index</param> /// <param name="r">renderer,如果非空,则将其体绘制结果添加到这里面来</param> /// example: /// CuteTools.ShowImageSeries(@"initial/%03d.bmp",64, 64, 0, 62); public static void ShowImageSeries(string format, int height, int width, int startIndex, int endIndex, vtkRenderer r = null) { if (format == null || format.Count() <= 4 || (!format.Substring(format.Count() - 3, 3).Equals("bmp"))) { Console.WriteLine("image filename is not correct!!"); return; } vtkBMPReader reader = vtkBMPReader.New(); reader.SetFilePattern(format); reader.SetDataExtent(0, height - 1, 0, width - 1, startIndex, endIndex); reader.SetDataScalarTypeToUnsignedChar(); reader.Update(); vtkVolume vol = vtkVolume.New(); vtkFixedPointVolumeRayCastMapper texMapper = vtkFixedPointVolumeRayCastMapper.New(); texMapper.SetInput(reader.GetOutput()); vol.SetMapper(texMapper); vtkColorTransferFunction colorTransferFunction = vtkColorTransferFunction.New(); colorTransferFunction.AddRGBPoint(0.0, 0.0, 255.0, 0.0); //colorTransferFunction.AddRGBPoint(120.0, 0.0, 0.0, 1.0); //colorTransferFunction.AddRGBPoint(160.0, 1.0, 0.0, 0.0); //colorTransferFunction.AddRGBPoint(200.0, 0.0, 1.0, 0.0); colorTransferFunction.AddRGBPoint(255, 0, 0, 1.0); colorTransferFunction.ClampingOn(); vtkVolumeProperty vpro = vtkVolumeProperty.New(); vtkPiecewiseFunction compositeOpacity = vtkPiecewiseFunction.New(); compositeOpacity.AddPoint(80, 1); compositeOpacity.AddPoint(120, 0.2); compositeOpacity.AddPoint(255, 0); compositeOpacity.ClampingOn(); vpro.SetScalarOpacity(compositeOpacity); //vpro.SetColor( colorTransferFunction ); vpro.SetInterpolationTypeToLinear(); //vpro.ShadeOn(); vol.SetProperty(vpro); //画轴距图 vol.SetOrientation(45, 45, 0); if (r != null) { r.AddVolume(vol); } else { vtkRenderer render = vtkRenderer.New(); render.AddVolume(vol); render.SetBackground(1, 1, 1); vtkRenderWindow wnd = vtkRenderWindow.New(); wnd.AddRenderer(render); vtkRenderWindowInteractor inter = vtkRenderWindowInteractor.New(); inter.SetRenderWindow(wnd); inter.Initialize(); inter.Start(); } }
private void DrawTest() { vtkProp3D prop3D; vtkActor actor = vtkActor.New(); vtkActor2D actor2D = vtkActor2D.New(); vtkLODActor lODActor = vtkLODActor.New(); vtkLODProp3D lodProp3d = vtkLODProp3D.New(); vtkCamera camera = vtkCamera.New(); vtkCameraActor cameraActor = vtkCameraActor.New(); vtkLight light = vtkLight.New(); vtkLightActor lightActor = vtkLightActor.New(); vtkPicker picker = vtkPicker.New(); vtkPointPicker pointPicker = vtkPointPicker.New(); vtkCellPicker cellPicker = vtkCellPicker.New(); vtkAreaPicker areaPicker = vtkAreaPicker.New(); vtkAssembly assembly = vtkAssembly.New(); vtkConeSource coneSource = vtkConeSource.New(); vtkCone cone = vtkCone.New(); vtkArcSource arcSource = vtkArcSource.New(); vtkLineSource lineSource = vtkLineSource.New(); vtkPointSource pointSource = vtkPointSource.New(); vtkPolyData polyData = vtkPolyData.New(); vtkArrayReader arrayReader = vtkArrayReader.New(); vtkArrayDataReader arrayDataReader = vtkArrayDataReader.New(); vtkArrayWriter arrayWriter = vtkArrayWriter.New(); vtkRenderWindowInteractor renderWindowInteractor = vtkRenderWindowInteractor.New(); vtkRenderWindowInteractor3D renderWindowInteractor3D = vtkRenderWindowInteractor3D.New(); vtkInteractorStyle interactorStyle = vtkInteractorStyle.New(); vtkInteractorStyle3D interactorStyle3D = vtkInteractorStyle3D.New(); vtkInteractorStyleFlight interactorStyleFlight = vtkInteractorStyleFlight.New(); vtkInteractorStyleTrackball interactorStyleTrackball = vtkInteractorStyleTrackball.New(); vtkVolume volume = vtkVolume.New(); vtkVolumeMapper volumeMapper; vtkSmartVolumeMapper smartVolumeMapper = vtkSmartVolumeMapper.New(); vtkUnstructuredGridVolumeMapper unstructuredGridVolumeMapper; vtkUnstructuredGridVolumeRayCastMapper unstructuredGridVolumeRayCastMapper = vtkUnstructuredGridVolumeRayCastMapper.New(); vtkGPUVolumeRayCastMapper gPUVolumeRayCastMapper = vtkGPUVolumeRayCastMapper.New(); vtkVolumeRayCastMapper volumeRayCastMapper = vtkVolumeRayCastMapper.New(); vtkFixedPointVolumeRayCastMapper pointVolumeRayCastMapper = vtkFixedPointVolumeRayCastMapper.New(); vtkOpenGLGPUVolumeRayCastMapper openGLGPUVolumeRayCastMapper = vtkOpenGLGPUVolumeRayCastMapper.New(); vtkVolumeProperty volumeProperty = vtkVolumeProperty.New(); vtkTexture texture = vtkTexture.New(); vtkCoordinate coordinate = vtkCoordinate.New(); vtkImageData vtkImage = vtkImageData.New(); vtkBMPReader bMPReader = vtkBMPReader.New(); vtkJPEGReader jPEGReader = vtkJPEGReader.New(); vtkPNGReader pNGReader = vtkPNGReader.New(); vtkTIFFReader tIFFReader = vtkTIFFReader.New(); vtkOBJReader oBJReader = vtkOBJReader.New(); vtkContourFilter contourFilter = vtkContourFilter.New(); vtkSynchronizedTemplates2D synchronizedTemplates2D = vtkSynchronizedTemplates2D.New(); vtkSynchronizedTemplates3D synchronizedTemplates3D = vtkSynchronizedTemplates3D.New(); vtkSynchronizedTemplatesCutter3D synchronizedTemplatesCutter3D = vtkSynchronizedTemplatesCutter3D.New(); vtkImageMapper imageMapper = vtkImageMapper.New(); vtkImageSliceMapper imageSliceMapper = vtkImageSliceMapper.New(); vtkImageResliceMapper imageResliceMapper = vtkImageResliceMapper.New(); vtkStructuredGridReader structuredGridReader = vtkStructuredGridReader.New(); vtkRungeKutta4 integ = vtkRungeKutta4.New(); vtkStreamTracer streamer = vtkStreamTracer.New(); vtkTubeFilter streamTube = vtkTubeFilter.New(); vtkRuledSurfaceFilter ruledSurfaceFilter = vtkRuledSurfaceFilter.New(); vtkPlane plane = vtkPlane.New(); vtkCutter cutter = new vtkCutter(); vtkMergeFilter mergeFilter = vtkMergeFilter.New(); vtkImageLuminance imageLuminance = vtkImageLuminance.New(); vtkImageDataGeometryFilter imageDataGeometryFilter = vtkImageDataGeometryFilter.New(); vtkWarpScalar warpScalar = vtkWarpScalar.New(); vtkWarpVector warpVector = vtkWarpVector.New(); }