我正在尝试更改图像窗口的宽度和级别。
我知道我需要创建 vtkWindowLevelLookupTable。并将其附加到映射器。就像这里描述的那样。
我不明白这个映射器来自哪里以及它的输入连接是什么。我的代码:
_reader2 = vtkDICOMImageReader.New();
_reader2.SetDirectoryName(path);
_reader2.Update();
// Visualize
_ImageViewer2 = vtkImageViewer2.New();
_ImageViewer2.SetInputConnection(_reader2.GetOutputPort());
var image = _ImageViewer2.GetInput();
// get range of slices (min is the first index, max is the last index)
_ImageViewer2.GetSliceRange(ref _MinSlice2, ref _MaxSlice2);
this.vScrollBar2.Maximum = _MaxSlice2 + 1 + vScrollBar2.LargeChange - 1;
Debug.WriteLine("slices range from : " + _MinSlice2.ToString() + " to " + _MaxSlice2.ToString());
vtkRenderWindow renderWindow = renderWindowControl2.RenderWindow;
_interactorStyle2 = vtkInteractorStyleImage.New();
_interactorStyle2.MouseWheelForwardEvt += new vtkObject.vtkObjectEventHandler(interactor_MouseWheelForwardEvt2);
_interactorStyle2.MouseWheelBackwardEvt += new vtkObject.vtkObjectEventHandler(interactor_MouseWheelBackwardEvt2);
renderWindow.GetInteractor().LeftButtonPressEvt += new …Run Code Online (Sandbox Code Playgroud) 我candidate function(s) not accessible在调用某些成员时遇到编译错误,尽管我将它们声明为public.当涉及来自vtk的某个类(作为返回类型或参数)并且要调用的类与调用代码不在同一个VS项目中时,我只得到错误.我也试过其他vtk类型没有运气:(
这是一些测试代码:
// A.h, in a seperate class library
#include <vtkActor.h>
public ref class A
{
public:
A(void);
void test1(vtkActor* actor);
vtkActor* test2();
void test3(char* actor);
char* test4();
};
// B.h, Same as A but in the same project as the calling code
#include <vtkActor.h>
ref class B
{
public:
B(void);
void test1(vtkActor* actor);
vtkActor* test2();
void test3(char* actor);
char* test4();
};
Run Code Online (Sandbox Code Playgroud)
我试着从同一个项目中调用函数B是这样的:
// calls to class library
A^ …Run Code Online (Sandbox Code Playgroud) For example, if i have a cube
(this part of code is from the vtk python example)
import vtk
# create a rendering window and renderer
ren = vtk.vtkRenderer()
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
# create a renderwindowinteractor
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
# create cube
cube = vtk.vtkCubeSource()
# mapper
cubeMapper = vtk.vtkPolyDataMapper()
cubeMapper.SetInput(cube.GetOutput())
# actor
cubeActor = vtk.vtkActor()
cubeActor.SetMapper(cubeMapper)
# assign actor to the renderer
ren.AddActor(cubeActor)
# enable user interface interactor
iren.Initialize()
renWin.Render()
iren.Start()
Run Code Online (Sandbox Code Playgroud)
How can i delete this cube …
给定一个 vtk 图像:
vtkSmartPointer<vtkImageData> VTKImage = vtkSmartPointer<vtkImageData>::New();
这是一个包含分割结果为二进制数据的 3D 图像(分割对象 = 1,背景 = 0),如何提取分割对象的表面并将其保存为 VTKpolyData?