]> Creatis software - creaContours.git/commitdiff
no message
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Fri, 27 May 2011 13:48:09 +0000 (13:48 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Fri, 27 May 2011 13:48:09 +0000 (13:48 +0000)
lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx
lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx
lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h

index 6fbe98bbdb338086f27e2161ad1a80a98152eaf0..277a87a0a19ab8134f1543f79c4c2fc46fad0cd4 100644 (file)
@@ -2982,41 +2982,38 @@ void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value
 void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)
 {
 
+       double spc[3];
+       kernelManager->GetSpacing(spc,0);   // returns the spacing of the first image
+       
        std::string temp = directory + "/" + namefile + "-image-Value.mhd";
 
        wxString filename = crea::std2wx(temp);
-       // LG
-       //      filename.Printf(_T(temp.c_str()));
-       //filename.Printf(_T("%s\\%s-Value.mhd",directory.c_str(),namefile.c_str(),z);
-       /*filename.Printf(_T("%s"),directory.c_str());
-       filename.append(_T("\\"));
-       filename.append(_T("%s"),namefile.c_str());
-       filename.append(_T("-Value.mhd"));*/
 
 // Image Value
+       
+       vtkImageChangeInformation *valueChInfo = vtkImageChangeInformation::New();
+       valueChInfo->SetInput(value);
+       valueChInfo->SetSpacingScale(spc);      
        vtkMetaImageWriter *writerValueImage = vtkMetaImageWriter::New( );
-       writerValueImage->SetInput( value );
-       writerValueImage->SetInput( value );
+       writerValueImage->SetInput( valueChInfo->GetOutput() );
        writerValueImage->SetFileName( (const char *)filename.mb_str() );
        writerValueImage->SetFileDimensionality( 3 );
        writerValueImage->SetCompression(false);
        writerValueImage->Write( );
 
 // Image Mask
-       //              filename.Printf("%s\\%s-Mask.mhd",directory.c_str(),namefile.c_str(),z);
        temp = directory + "/" + namefile + "-image-Mask.mhd";
 
        // LG 14/01/09 : using crea
        filename = crea::std2wx(temp);
        //      filename.Printf(_T(temp.c_str()));
 
-       /*filename.Printf(_T("%s"),directory.c_str());
-       filename.append(_T("\\"));
-       filename.append(_T("%s"),namefile.c_str());
-       filename.append(_T("-Mask.mhd"));*/
 
+       vtkImageChangeInformation *maskChInfo = vtkImageChangeInformation::New();
+       maskChInfo->SetInput(mask);
+       maskChInfo->SetSpacingScale(spc);       
        vtkMetaImageWriter *writerMaskImage = vtkMetaImageWriter::New( );
-       writerMaskImage->SetInput( mask );
+       writerMaskImage->SetInput( maskChInfo->GetOutput() );
        writerMaskImage->SetFileName( (const char *)filename.mb_str() );
        writerMaskImage->SetFileDimensionality( 3 );
        writerMaskImage->SetCompression(false);
index 236a515ea6e34341c95379b9a716230e8e5e72d8..1fb5e3f9416463d5a98bc6b7a83885e8789bb151 100644 (file)
@@ -77,6 +77,8 @@ std::vector<vtkImageData*> KernelManagerContour::getVectImages()
 {
        return vectimages;
 }
+
+
 void KernelManagerContour::setVectImages(std::vector<vtkImageData*> vectimg)
 {
        double spc[3];
@@ -103,6 +105,15 @@ void KernelManagerContour::setVectImages(std::vector<vtkImageData*> vectimg)
        vectimages = vectimg;
 }
 
+
+void KernelManagerContour::GetSpacing(double *vecspc, int iImage)
+{
+       vecspc[0]=vectimagesSpacing[iImage][0];
+       vecspc[1]=vectimagesSpacing[iImage][1];
+       vecspc[2]=vectimagesSpacing[iImage][2];
+}
+
+
 void KernelManagerContour::initializeEnvironment(std::string datadir){
        _datadir = datadir;
        std::string conceptsFN                  =  datadir+"holaConceptsFile.cf";
index cb3eed540fc3657e7e1099d064044f1256ad55d4..28238838b422f2537525e48e242f57763d20710c 100644 (file)
@@ -47,6 +47,9 @@ public:
        std::vector<vtkImageData*> getVectImages();
        void setVectImages(std::vector<vtkImageData*> vectimg);
 
+       void GetSpacing(double *vecspc, int iImage);
+
+       
        /**
        **      This method returns the source of the image data selected by the user.
        */