I write a simple program using vtk to render volume from raw image data,
i get a empty show-window. Here's my code int main() { unsigned int data_length = WIDTH*DEPTH*LENGTH; unsigned char* raw_data = (unsigned char*)malloc(data_length); FILE* fp; if( !(fp = fopen("source.dat","rb")) ){ printf("Open raw data failed.\n"); EXIT_FAILURE; } if( fread(raw_data,sizeof(unsigned char),data_length,fp)!=data_length ){ printf("Read raw data from file failed.\n"); EXIT_FAILURE; } fclose(fp); vtkImageData* vol_data = vtkImageData::New(); float sample_width = WIDTH_L / WIDTH*10; float sample_depth = DEPTH_L / DEPTH*10; float sample_length = LENGTH_L /LENGTH*10; vol_data->SetNumberOfScalarComponents(1); vol_data->SetDimensions(WIDTH,DEPTH,LENGTH); vol_data->SetSpacing(sample_width,sample_depth,sample_length); vol_data->SetScalarTypeToUnsignedChar(); vol_data->SetOrigin(0,0,0); vol_data->AllocateScalars(); memcpy(vol_data->GetScalarPointer(), raw_data, data_length*sizeof(unsigned char)); free(raw_data); vtkVolumeMapper* mapper = vtkFixedPointVolumeRayCastMapper::New(); mapper->SetInput(vol_data); mapper->SetBlendModeToComposite(); vtkPiecewiseFunction* piecewise = vtkPiecewiseFunction::New(); piecewise->AddPoint(0,0); piecewise->AddPoint(127,0.05); piecewise->AddPoint(253,1.0); vtkColorTransferFunction* color = vtkColorTransferFunction::New(); color->AddRGBPoint(127,0.3,0.3,0.3); color->AddRGBPoint(253,1.0,1.0,1.0); vtkVolumeProperty* vol_prop = vtkVolumeProperty::New(); vol_prop->SetColor(color); vol_prop->SetScalarOpacity(piecewise); vol_prop->SetInterpolationTypeToLinear(); vtkVolume* vol = vtkVolume::New(); vol->SetMapper(mapper); vol->SetProperty(vol_prop); vtkRenderer* ren = vtkRenderer::New(); ren->AddActor(vol); ren->ResetCamera(); ren->SetBackground(1, 1, 1); vtkRenderWindow *ren_win = vtkRenderWindow::New(); ren_win->AddRenderer(ren); vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New(); iren->SetRenderWindow(ren_win); ren_win->Render(); iren->Initialize(); iren->Start(); vol_data->Delete(); mapper->Delete(); piecewise->Delete(); color->Delete(); vol_prop->Delete(); vol->Delete(); ren->Delete(); ren_win->Delete(); iren->Delete(); EXIT_SUCCESS; } _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ Follow this link to subscribe/unsubscribe: http://www.vtk.org/mailman/listinfo/vtkusers |
Free forum by Nabble | Edit this page |