X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkImage2DicomRTStructFilter.txx;h=7325b69edfc81fd9bafb3d297ed09b40e51c7092;hb=08f7de414957e92b25ca5b299007e941b610d3a8;hp=248451d8fac4e0dff6ac74b2b1316750226037a0;hpb=794be53b8efec2ddb9c3097efd559c514fb4a813;p=clitk.git diff --git a/common/clitkImage2DicomRTStructFilter.txx b/common/clitkImage2DicomRTStructFilter.txx index 248451d..7325b69 100644 --- a/common/clitkImage2DicomRTStructFilter.txx +++ b/common/clitkImage2DicomRTStructFilter.txx @@ -52,6 +52,8 @@ #include // gdcm +#include +#include #include //-------------------------------------------------------------------- @@ -62,6 +64,7 @@ clitk::Image2DicomRTStructFilter::Image2DicomRTStructFilter() m_DicomFolder = ""; m_OutputFilename = "default-output.dcm"; m_ThresholdValue = 0.5; + m_SkipInitialStructuresFlag = false; } //-------------------------------------------------------------------- @@ -111,7 +114,6 @@ void clitk::Image2DicomRTStructFilter::Update() std::cout << "Number of structures in the dicom-rt-struct : " << p->GetNumberOfStructureSetROIs() << std::endl; } - // number of additional contours int m = m_InputFilenames.size(); @@ -119,6 +121,11 @@ void clitk::Image2DicomRTStructFilter::Update() // Init writer vtkGDCMPolyDataWriter * writer = vtkGDCMPolyDataWriter::New(); int numMasks = reader->GetNumberOfOutputPorts() + m; + + if (m_SkipInitialStructuresFlag) { + numMasks = m; + } + writer->SetNumberOfInputPorts(numMasks); writer->SetFileName(m_OutputFilename.c_str()); writer->SetMedicalImageProperties(reader->GetMedicalImageProperties()); @@ -130,14 +137,14 @@ void clitk::Image2DicomRTStructFilter::Update() roiNames->SetNumberOfValues(numMasks); roiAlgorithms->SetNumberOfValues(numMasks); roiTypes->SetNumberOfValues(numMasks); - + // Convert the image into a mesh std::vector > meshes; std::vector m_ROINames; meshes.resize(m); m_ROINames.resize(m); for(unsigned int i=0; i ImageType; @@ -148,7 +155,7 @@ void clitk::Image2DicomRTStructFilter::Update() GetFilenameName(vtksys::SystemTools::GetFilenameWithoutLastExtension(m_InputFilenames[i])); std::string name = oss.str(); m_ROINames[i] = name; - + // convert to mesh typedef clitk::BinaryImageToMeshFilter BinaryImageToMeshFilterType; typename BinaryImageToMeshFilterType::Pointer convert = BinaryImageToMeshFilterType::New(); @@ -159,7 +166,7 @@ void clitk::Image2DicomRTStructFilter::Update() if (GetVerboseFlag()) { std::cout << "Mesh has " << meshes[i]->GetNumberOfLines() << " lines." << std::endl; } - + /* // debug mesh write FIXME vtkSmartPointer wr = vtkSmartPointer::New(); @@ -169,26 +176,34 @@ void clitk::Image2DicomRTStructFilter::Update() wr->Write(); */ } - + // Copy previous contours for (unsigned int i = 0; i < numMasks-m; ++i) { +#if VTK_MAJOR_VERSION <= 5 writer->SetInput(i, reader->GetOutput(i)); +#else + writer->SetInputData(i, reader->GetOutput(i)); +#endif std::string theString = reader->GetRTStructSetProperties()->GetStructureSetROIName(i); roiNames->InsertValue(i, theString); theString = reader->GetRTStructSetProperties()->GetStructureSetROIGenerationAlgorithm(i); roiAlgorithms->InsertValue(i, theString); theString = reader->GetRTStructSetProperties()->GetStructureSetRTROIInterpretedType(i); roiTypes->InsertValue(i, theString); - } + } // Add new ones for (unsigned int i = numMasks-m; i < numMasks; ++i) { +#if VTK_MAJOR_VERSION <= 5 writer->SetInput(i, meshes[i-numMasks+m]); +#else + writer->SetInputData(i, meshes[i-numMasks+m]); +#endif roiNames->InsertValue(i, m_ROINames[i-numMasks+m]); roiAlgorithms->InsertValue(i, "CLITK_CREATED"); roiTypes->InsertValue(i, m_ROIType); } - + /* // Visu DEBUG vtkPolyDataMapper *cubeMapper = vtkPolyDataMapper::New();