[Insight-users] How To Fix that Visualisation ?
circass
circass at gmail.com
Tue Dec 29 11:30:13 EST 2009
I Found the solution of my problem,
it is here for anyother prorammers,,,,
vtkPiecewiseFunction* opacityTransferFunction =
vtkPiecewiseFunction::New();
//Use this OPACITY !!!!
opacityTransferFunction->addPoint(0,0.1);
opacityTransferFunction->addPoint(255,0);
vtkColorTransferFunction* colorTransferFunction =
vtkColorTransferFunction::New();
vtkVolume* volume = vtkVolume::New();
vtkVolumeProperty* volumeProperty = vtkVolumeProperty::New();
vtkVolumeTextureMapper3D* volumeMapper = vtkVolumeTextureMapper3D::New();
vtkFixedPointVolumeRayCastMapper* volumeMapperSoftware =
vtkFixedPointVolumeRayCastMapper::New();
volumeProperty->SetScalarOpacity(opacityTransferFunction); // Uncomment this
line, it will work after those things. STILL THANX FOR YOUR HELPS.
circass wrote:
>
> This is my Result Volume, but i want to see only the volume pf my dicom
> series !
>
>
> http://img693.imageshack.us/img693/8188/outputo.jpg
>
>
> As you see it is in a rectangular shape and the volume is not transparent
> so nobody can see inside of that volume.
>
> This is my Code :
>
> #include "itkOrientedImage.h"
> #include "itkGDCMImageIO.h"
> #include "itkGDCMSeriesFileNames.h"
> #include "itkImageSeriesReader.h"
> #include "itkImageFileWriter.h"
> #include "itkCommand.h"
> #include "itkImage.h"
> #include "itkVTKImageExport.h"
> #include "itkOrientedImage.h"
> #include "itkGDCMImageIO.h"
> #include "itkGDCMSeriesFileNames.h"
> #include "itkImageSeriesReader.h"
> #include "itkImageFileWriter.h"
> #include "itkVTKImageImport.h"
> #include "itkCurvatureFlowImageFilter.h"
> #include "itkCastImageFilter.h"
> #include "itkRGBPixel.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkDICOMImageIO2Factory.h"
> #include "itkDICOMImageIO2.h"
> #include "itkImageSeriesReader.h"
> #include "itkDICOMSeriesFileNames.h"
> #include "vtkColorTransferFunction.h"
> #include "vtkImageData.h"
> #include "vtkImageImport.h"
> #include "vtkImageExport.h"
> #include "vtkImageActor.h"
> #include "vtkRenderer.h"
> #include "vtkRenderWindow.h"
> #include "vtkVolumeProperty.h"
> #include "vtkVolumeTextureMapper.h"
> #include "vtkVolumeTextureMapper3D.h"
> #include "vtkFixedPointVolumeRayCastMapper.h";
> #include "vtkRenderWindowInteractor.h"
> #include "vtkInteractorStyleImage.h"
> #include "vtkPieceWiseFunction.h"
> #include "conio.h"
>
> template <typename ITK_Exporter, typename VTK_Importer>
> void ConnectPipelines(ITK_Exporter exporter, VTK_Importer* importer)
> {
>
> importer->SetUpdateInformationCallback(exporter->GetUpdateInformationCallback());
>
> importer->SetPipelineModifiedCallback(exporter->GetPipelineModifiedCallback());
> importer->SetWholeExtentCallback(exporter->GetWholeExtentCallback());
> importer->SetSpacingCallback(exporter->GetSpacingCallback());
> importer->SetOriginCallback(exporter->GetOriginCallback());
> importer->SetScalarTypeCallback(exporter->GetScalarTypeCallback());
>
> importer->SetNumberOfComponentsCallback(exporter->GetNumberOfComponentsCallback());
>
> importer->SetPropagateUpdateExtentCallback(exporter->GetPropagateUpdateExtentCallback());
> importer->SetUpdateDataCallback(exporter->GetUpdateDataCallback());
> importer->SetDataExtentCallback(exporter->GetDataExtentCallback());
>
> importer->SetBufferPointerCallback(exporter->GetBufferPointerCallback());
> importer->SetCallbackUserData(exporter->GetCallbackUserData());
> }
>
> template <typename VTK_Exporter, typename ITK_Importer>
> void ConnectPipelines(VTK_Exporter* exporter, ITK_Importer importer)
> {
>
> importer->SetUpdateInformationCallback(exporter->GetUpdateInformationCallback());
>
> importer->SetPipelineModifiedCallback(exporter->GetPipelineModifiedCallback());
> importer->SetWholeExtentCallback(exporter->GetWholeExtentCallback());
> importer->SetSpacingCallback(exporter->GetSpacingCallback());
> importer->SetOriginCallback(exporter->GetOriginCallback());
> importer->SetScalarTypeCallback(exporter->GetScalarTypeCallback());
>
> importer->SetNumberOfComponentsCallback(exporter->GetNumberOfComponentsCallback());
>
> importer->SetPropagateUpdateExtentCallback(exporter->GetPropagateUpdateExtentCallback());
> importer->SetUpdateDataCallback(exporter->GetUpdateDataCallback());
> importer->SetDataExtentCallback(exporter->GetDataExtentCallback());
>
> importer->SetBufferPointerCallback(exporter->GetBufferPointerCallback());
> importer->SetCallbackUserData(exporter->GetCallbackUserData());
> }
>
> int main( int argc, char* argv[] )
> {
> typedef signed short PixelType;
> const unsigned int Dimension = 3;
>
> typedef itk::OrientedImage< PixelType, Dimension > ImageType;
> typedef itk::ImageSeriesReader< ImageType > ReaderType;
> ReaderType::Pointer reader = ReaderType::New();
> typedef itk::GDCMImageIO ImageIOType;
> ImageIOType::Pointer dicomIO = ImageIOType::New();
>
> reader->SetImageIO( dicomIO );
> typedef itk::GDCMSeriesFileNames NamesGeneratorType;
> NamesGeneratorType::Pointer nameGenerator = NamesGeneratorType::New();
>
> nameGenerator->SetUseSeriesDetails( true );
> nameGenerator->SetDirectory(
> "C:\\Users\\circass\\Desktop\\YEDEKLERRRR\\MANIX\\CER-CT\\ANGIO CT" ); //
> There are 461 Dicom Image files in it.
>
> std::cout << std::endl << "The directory: " << std::endl;
> std::cout << std::endl <<
> "C:\\Users\\circass\\Desktop\\YEDEKLERRRR\\MANIX\\CER-CT\\ANGIO CT" <<
> std::endl << std::endl;
> std::cout << "Contains the following DICOM Series: ";
> std::cout << std::endl << std::endl;
>
>
> typedef std::vector< std::string > SeriesIdContainer;
>
> const SeriesIdContainer & seriesUID = nameGenerator->GetSeriesUIDs();
>
> SeriesIdContainer::const_iterator seriesItr = seriesUID.begin();
> SeriesIdContainer::const_iterator seriesEnd = seriesUID.end();
> while( seriesItr != seriesEnd )
> {
> std::cout << seriesItr->c_str() << std::endl;
> seriesItr++;
> }
> std::string seriesIdentifier;
> seriesIdentifier = seriesUID.begin()->c_str();
> std::cout << std::endl << std::endl;
> std::cout << "Now reading series: " << std::endl << std::endl;
> std::cout << seriesIdentifier << std::endl;
> std::cout << std::endl << std::endl;
> typedef std::vector< std::string > FileNamesContainer;
> FileNamesContainer fileNames;
> fileNames = nameGenerator->GetFileNames( seriesIdentifier );
> reader->SetFileNames( fileNames );
> typedef itk::VTKImageExport< ImageType > ExportFilterType;
> ExportFilterType::Pointer itkExporter = ExportFilterType::New();
> itkExporter->SetInput( reader->GetOutput() );
> vtkImageImport* vtkImporter = vtkImageImport::New();
> ConnectPipelines(itkExporter, vtkImporter);
> typedef itk::VTKImageImport< ImageType > ImportFilterType;
> ImportFilterType::Pointer itkImporter = ImportFilterType::New();
>
>
> vtkImageExport* vtkExporter = vtkImageExport::New();
> ConnectPipelines(vtkExporter, itkImporter);
>
> vtkExporter->SetInput( vtkImporter->GetOutput() );
>
> //reader->Update();
>
> vtkPiecewiseFunction* opacityTransferFunction =
> vtkPiecewiseFunction::New();
> vtkColorTransferFunction* colorTransferFunction =
> vtkColorTransferFunction::New();
>
> vtkVolume* volume = vtkVolume::New();
> vtkVolumeProperty* volumeProperty = vtkVolumeProperty::New();
> vtkVolumeTextureMapper3D* volumeMapper = vtkVolumeTextureMapper3D::New();
> vtkFixedPointVolumeRayCastMapper* volumeMapperSoftware =
> vtkFixedPointVolumeRayCastMapper::New();
>
> //volumeProperty->SetScalarOpacity(opacityTransferFunction);
> volumeProperty->SetInterpolationTypeToNearest();
> volumeProperty->ShadeOff();
> volume->SetProperty(volumeProperty);
>
> volumeMapperSoftware->SetInput(vtkImporter->GetOutput());
> volumeMapperSoftware->SetSampleDistance(0.1);
> volume->SetMapper(volumeMapperSoftware);
>
> vtkInteractorStyleTrackballCamera * interactorStyle =
> vtkInteractorStyleTrackballCamera::New();
>
> vtkRenderer* renderer = vtkRenderer::New();
> vtkRenderWindow* renWin = vtkRenderWindow::New();
> renderer->SetBackground(1,1,1);
> vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();
>
> renWin->SetSize(500, 500);
> renWin->AddRenderer(renderer);
> iren->SetRenderWindow(renWin);
> //iren->SetInteractorStyle(interactorStyle);
>
> renderer->AddVolume(volume);
> renWin->Render();
> iren->Start();
> }
>
>
>
>
> I am developing it in Visual Studio 2008;
> my linker -> input files are :
>
> kernel32.lib
> user32.lib
> gdi32.lib
> winspool.lib
> shell32.lib
> ole32.lib
> oleaut32.lib
> uuid.lib
> comdlg32.lib
> advapi32.lib
> C:\ITK\Itk-Win\bin\Release\ITKIO.lib
> C:\ITK\Itk-Win\bin\Release\ITKNrrdIO.lib
> C:\ITK\Itk-Win\bin\Release\itkgdcm.lib
> C:\ITK\Itk-Win\bin\Release\itkjpeg12.lib
> C:\ITK\Itk-Win\bin\Release\itkjpeg16.lib
> C:\ITK\Itk-Win\bin\Release\itkopenjpeg.lib
> snmpapi.lib
> rpcrt4.lib
> C:\ITK\Itk-Win\bin\Release\itkpng.lib
> C:\ITK\Itk-Win\bin\Release\itktiff.lib
> C:\ITK\Itk-Win\bin\Release\itkjpeg8.lib
> C:\ITK\Itk-Win\bin\Release\ITKSpatialObject.lib
> C:\ITK\Itk-Win\bin\Release\ITKCommon.lib
> C:\ITK\Itk-Win\bin\Release\itkvnl_inst.lib
> C:\ITK\Itk-Win\bin\Release\itkvnl_algo.lib
> C:\ITK\Itk-Win\bin\Release\itkv3p_netlib.lib
> C:\ITK\Itk-Win\bin\Release\itkvnl.lib
> C:\ITK\Itk-Win\bin\Release\itkvcl.lib
> C:\ITK\Itk-Win\bin\Release\ITKMetaIO.lib
> C:\ITK\Itk-Win\bin\Release\itksys.lib
> ws2_32.lib
> comctl32.lib
> wsock32.lib
> C:\ITK\Itk-Win\bin\Release\ITKDICOMParser.lib
> C:\ITK\Itk-Win\bin\Release\ITKEXPAT.lib
> C:\ITK\Itk-Win\bin\Release\ITKniftiio.lib
> C:\ITK\Itk-Win\bin\Release\ITKznz.lib
> C:\ITK\Itk-Win\bin\Release\itkzlib.lib
> C:\ITK\Itk-Win\bin\Release\itkBasicFilters.lib
> vtkCommon.lib
> vtksqlite.lib
> vtkpng.lib
> vtktiff.lib
> vtkzlib.lib
> vtkjpeg.lib
> vtkexpat.lib
> vtksys.lib
> vtkexoIIc.lib
> vtkNetCDF.lib
> vtkRendering.lib
> vtkIO.lib
> vtkWidgets.lib
> vtkHybrid.lib
> vtkGraphics.lib
> vtkverdict.lib
> vtkImaging.lib
> vtkftgl.lib
> vtkfreetype.lib
> opengl32.lib
> vtkFiltering.lib
> vtkDICOMParser.lib
> vtkmetaio.lib
> vtkVolumeRendering.lib
>
>
> Thanx for your helps
>
--
View this message in context: http://old.nabble.com/How-To-Fix-that-Visualisation---tp26952729p26956634.html
Sent from the ITK - Users mailing list archive at Nabble.com.
More information about the Insight-users
mailing list