使用vtkDataImage渲染简单图像 我想用C++中的VTKIGIMADATA渲染一个简单的图像。我知道vtkImageDataGeometryFilter可以完成这项工作,但我想问的是,是否有其他方法可以在不使用PolyData的情况下获得相同的结果?这是我的代码,但我在渲染时有访问冲突,我不知道为什么 vtkSmartPointer<vtkImageData> imageData = vtkSmartPointer<vtkImageData>::New(); imageData->SetExtent(0, 5, 0, 5, 0, 1); imageData->SetSpacing(1, 1, 1); imageData->SetOrigin(0, 0, 0); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { imageData->SetScalarComponentFromFloat(i,j,0,0,0); } } vtkSmartPointer<vtkImageActor> imageActor = vtkSmartPointer<vtkImageActor>::New(); imageActor->SetInputData(imageData); vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); renderer->AddActor(imageActor); renderWindow->Render(); renderWindowInteractor->Start(); vtksmart指针图像数据= vtkSmartPointer::New(); imageData->SetExtent(0,5,0,5,0,1); imageData->setspace(1,1,1); imageData->SetOrigin(0,0,0); 对于(int i=0;iSetInputData(imageData); VTKSmart指针渲染器= vtkSmartPointer::New(); vtkSmartPointer渲染窗口= vtkSmartPointer::New(); renderWindow->AddRenderer(渲染器); vtkSmartPointer渲染器Windows WinterActor= vtkSmartPointer::New(); RenderWindowWinterActor->SetRenderWindow(renderWindow); 渲染器->添加器(imageActor); renderWindow->Render(); renderWindowInteractor->Start();

使用vtkDataImage渲染简单图像 我想用C++中的VTKIGIMADATA渲染一个简单的图像。我知道vtkImageDataGeometryFilter可以完成这项工作,但我想问的是,是否有其他方法可以在不使用PolyData的情况下获得相同的结果?这是我的代码,但我在渲染时有访问冲突,我不知道为什么 vtkSmartPointer<vtkImageData> imageData = vtkSmartPointer<vtkImageData>::New(); imageData->SetExtent(0, 5, 0, 5, 0, 1); imageData->SetSpacing(1, 1, 1); imageData->SetOrigin(0, 0, 0); for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { imageData->SetScalarComponentFromFloat(i,j,0,0,0); } } vtkSmartPointer<vtkImageActor> imageActor = vtkSmartPointer<vtkImageActor>::New(); imageActor->SetInputData(imageData); vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); renderWindowInteractor->SetRenderWindow(renderWindow); renderer->AddActor(imageActor); renderWindow->Render(); renderWindowInteractor->Start(); vtksmart指针图像数据= vtkSmartPointer::New(); imageData->SetExtent(0,5,0,5,0,1); imageData->setspace(1,1,1); imageData->SetOrigin(0,0,0); 对于(int i=0;iSetInputData(imageData); VTKSmart指针渲染器= vtkSmartPointer::New(); vtkSmartPointer渲染窗口= vtkSmartPointer::New(); renderWindow->AddRenderer(渲染器); vtkSmartPointer渲染器Windows WinterActor= vtkSmartPointer::New(); RenderWindowWinterActor->SetRenderWindow(renderWindow); 渲染器->添加器(imageActor); renderWindow->Render(); renderWindowInteractor->Start();,c++,3d,vtk,C++,3d,Vtk,提前感谢你的帮助^ ^我终于找到了。缺少行“imageData->AllocateScalars(VTK_FLOAT,3);”。以下代码显示绿色正方形: vtkSmartPointer<vtkImageData> imageData = vtkSmartPointer<vtkImageData>::New(); imageData->SetExtent(0, 50, 0, 50, 0, 1); imageData->SetSpacing(1,

提前感谢你的帮助^ ^

我终于找到了。缺少行“imageData->AllocateScalars(VTK_FLOAT,3);”。以下代码显示绿色正方形:

    vtkSmartPointer<vtkImageData> imageData =
    vtkSmartPointer<vtkImageData>::New();
imageData->SetExtent(0, 50, 0, 50, 0, 1);
imageData->SetSpacing(1, 1, 1);
imageData->SetOrigin(0, 0, 0);
imageData->AllocateScalars(VTK_FLOAT,3);
for (int i = 0; i < 50; i++)
{
    for (int j = 0; j < 50; j++)
    {
        imageData->SetScalarComponentFromFloat(i,j,0,1,255);
    }
}

vtkSmartPointer<vtkImageActor> imageActor =
    vtkSmartPointer<vtkImageActor>::New();
imageActor->SetInputData(imageData);

vtkSmartPointer<vtkRenderer> renderer =
    vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renderWindow =
    vtkSmartPointer<vtkRenderWindow>::New();
renderWindow->AddRenderer(renderer);
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
    vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(renderWindow);

renderer->AddActor(imageActor);
renderer->SetBackground(1, 0, 0.5);
renderWindow->Render();
renderWindowInteractor->Start();
vtksmart指针图像数据=
vtkSmartPointer::New();
imageData->SetExtent(0,50,0,50,0,1);
imageData->setspace(1,1,1);
imageData->SetOrigin(0,0,0);
imageData->AllocateScalars(VTK_浮点,3);
对于(int i=0;i<50;i++)
{
对于(int j=0;j<50;j++)
{
imageData->SetScalarComponentFromFloat(i,j,0,1255);
}
}
vtkSmartPointer imageActor=
vtkSmartPointer::New();
imageActor->SetInputData(imageData);
VTKSmart指针渲染器=
vtkSmartPointer::New();
vtkSmartPointer渲染窗口=
vtkSmartPointer::New();
renderWindow->AddRenderer(渲染器);
vtkSmartPointer渲染器Windows WinterActor=
vtkSmartPointer::New();
RenderWindowWinterActor->SetRenderWindow(renderWindow);
渲染器->添加器(imageActor);
渲染器->背景(1,0,0.5);
renderWindow->Render();
renderWindowInteractor->Start();

Thnak感谢您分享您的解决方案!:)