]> Creatis software - creaRigidRegistration.git/commitdiff
Merge remote-tracking branch 'origin/vtk8itk5wx3-mingw64' into vtk8itk5wx3-macos
authorEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 10 Sep 2021 13:03:28 +0000 (15:03 +0200)
committerEduardo DAVILA <davila@creatis.insa-lyon.fr>
Fri, 10 Sep 2021 13:03:28 +0000 (15:03 +0200)
PackRecalage/src/bbPackRecalageImageConvolution.cxx
PackRecalage/src/bbPackRecalageImageConvolution.h
PackRecalage/src/bbPackRecalageReSlicerBox.cxx
PackRecalage/src/bbPackRecalageTransparencyBox.cxx
lib/Convolution.cxx
lib/Transformer.cxx
lib/Transparency.cxx
lib/Transparency.h

index 8f45bedf05f6ed60315808a328c11be32898a9fc..f062a1c14adb8c7bd5d78877b5bbd4cc9b29e778 100644 (file)
@@ -40,7 +40,7 @@ void ImageConvolution::Process()
                convolution->setOn(bbGetInputOn());
                convolution->Run();
                bbSetOutputOut(convolution->getImage());
-       }
+       }// if
 }
 
 void ImageConvolution::bbUserSetDefaultValues()
@@ -55,9 +55,10 @@ void ImageConvolution::bbUserInitializeProcessing()
 {
        convolution = new Convolution();  
 }
+
 void ImageConvolution::bbUserFinalizeProcessing()
 {
        delete convolution;
 }
-}
-// EO namespace bbPackRecalage
+
+}// EO namespace bbPackRecalage
index 5e1754324814693c8417e9871746207d8dd96ea7..873805c2f1e2e342344f961bae0b432652f20afe 100644 (file)
@@ -53,14 +53,17 @@ class bbPackRecalage_EXPORT ImageConvolution
 };
 
 BBTK_BEGIN_DESCRIBE_BLACK_BOX(ImageConvolution,bbtk::AtomicBlackBox);
-BBTK_NAME("ImageConvolution");
-BBTK_AUTHOR("jn.trillos44@uniandes.edu.co");
-BBTK_DESCRIPTION("Processes an image through different convolution matrix (Edge detect)");
-BBTK_CATEGORY("filter");
-BBTK_INPUT(ImageConvolution,In,"Image to be filetered",vtkImageData*,"");
-BBTK_INPUT(ImageConvolution,Factor,"Factor by how the edges will be represented",double,"");
-BBTK_INPUT(ImageConvolution,On,"Boolean that represents if the filter is turned on. True = On.",bool,"");
-BBTK_OUTPUT(ImageConvolution,Out,"Filtered Image",vtkImageData*,"");
+  BBTK_NAME("ImageConvolution");
+  BBTK_AUTHOR("jn.trillos44@uniandes.edu.co");
+  BBTK_DESCRIPTION("Processes an image through different convolution matrix (Edge detect)");
+  BBTK_CATEGORY("filter");
+
+  BBTK_INPUT(ImageConvolution,In,"Image to be filetered",vtkImageData*,"");
+  BBTK_INPUT(ImageConvolution,Factor,"Factor by how the edges will be represented",double,"");
+  BBTK_INPUT(ImageConvolution,On,"(default false) Boolean that represents if the filter is turned on. True = On.",bool,"");
+
+  BBTK_OUTPUT(ImageConvolution,Out,"Filtered Image",vtkImageData*,"");
+
 BBTK_END_DESCRIBE_BLACK_BOX(ImageConvolution);
 }
 // EO namespace bbPackRecalage
index c501128b3ad2f2403c7f2889fc4a323dcbfc1a7e..e5b29da37ab17b1db8fbf0a3f0b5f9ef0fa4e790 100644 (file)
@@ -93,8 +93,8 @@ void ReSlicerBox::Process()
                {
                        image->CenterImageOn();
                }
-
-                double tmpbackInfo[19];
+               image->Update();
+        double tmpbackInfo[19];
                GetBackInfo(tmpbackInfo,bbGetInputTransform()->GetMatrix(),bbGetInputOrigin() );
 
                if ( CompareBackInfo(backInfoA,tmpbackInfo)==false ) 
@@ -129,7 +129,7 @@ void ReSlicerBox::Process()
                        bbGetInputIn()->GetSpacing(spc);
                        imageResult->SetOutputSpacing( spc ); 
                        imageResult->SetOutputOrigin( 0,0,0 ); 
-       
+                       imageResult->Update();
                        bbSetOutputOut( imageResult->GetOutput() );
 
                        if (bbGetInputTransform()!=NULL)
@@ -178,16 +178,16 @@ void ReSlicerBox::bbUserInitializeProcessing()
 //    Here does nothing  
 //    but this is where you should allocate the internal/output pointers  
 //    if any  
-       image = vtkImageChangeInformation::New();
-    slicer =vtkImageReslice::New();
+       image           = vtkImageChangeInformation::New();
+    slicer             = vtkImageReslice::New();
        imageResult = vtkImageChangeInformation::New();
 }
        
 void ReSlicerBox::bbUserFinalizeProcessing()
 { 
-       image->Delete();
-       slicer->Delete();
-    imageResult->Delete();
+       image           -> Delete();
+       slicer          -> Delete();
+    imageResult        -> Delete();
 }
 
 }
index a1591545c92bc405362d8d2024eb0bd97a8479d8..4490a12cd9d1ddf5a7098df3fc7a173bf8c97dc3 100644 (file)
@@ -37,9 +37,9 @@ void TransparencyBox::Process()
        transparency->setImage2(bbGetInputIn2());
        transparency->setPercent(bbGetInputPercent());
        transparency->calculateImage();
-
        bbSetOutputOut(transparency->getImage());
 }
+
 void TransparencyBox::bbUserSetDefaultValues()
 {
        bbSetInputIn1(NULL);   
@@ -47,20 +47,20 @@ void TransparencyBox::bbUserSetDefaultValues()
        bbSetInputPercent(-1);
        bbSetOutputOut(NULL);
 }
+
 void TransparencyBox::bbUserInitializeProcessing()
 {
        transparency = new Transparency();
 }
+
 void TransparencyBox::bbUserFinalizeProcessing()
-{
+{ 
 //  THE FINALIZATION METHOD BODY : 
 //    Here does nothing  
 //    but this is where you should desallocate the internal/output pointers  
-//    if any 
-  
-}
+//    if any   
 }
-// EO namespace bbPackRecalage
+
+}// EO namespace bbPackRecalage
 
 
index 796a0597d1d20e4b397d9796e178008369ac0032..6014ecd5132ebbe84cebba1f8c96dc38a3f5574d 100644 (file)
@@ -32,9 +32,9 @@
 //------------------------------------------------------------
 Convolution::Convolution()
 {
-       _image=NULL;
-       _convolve = vtkImageConvolve::New();
-       _cast = vtkImageCast::New();
+       _image          = NULL;
+       _convolve       = vtkImageConvolve::New();
+       _cast           = vtkImageCast::New();
 }
 
 /*
@@ -43,8 +43,8 @@ Convolution::Convolution()
 //------------------------------------------------------------
 Convolution::~Convolution()
 {
-       if (_convolve != NULL ) { _convolve->Delete(); }
-       if (_cast != NULL ) { _cast->Delete(); }
+       if (_convolve   != NULL ) { _convolve->Delete();        }
+       if (_cast               != NULL ) { _cast->Delete();            }
 }
 
 vtkImageData *Convolution::getImage()
@@ -65,7 +65,8 @@ void Convolution::setImage(vtkImageData *image)
 
 void Convolution::setFactor(double factor)
 {
-       _factor = (factor/100.0)*5.0;   
+//     _factor = (factor/100.0)*5.0;   
+       _factor = factor;       
 }
 
 void Convolution::setOn(bool on)
@@ -75,7 +76,7 @@ void Convolution::setOn(bool on)
 
 void Convolution::Run()
 {
-       if(_on)
+       if(_on==true)
        {
                double kernel[] = {0.0,1.0,0.0,1.0,-_factor,1.0,0.0,1.0,0.0};
                _convolve->SetKernel3x3(kernel);
@@ -88,9 +89,7 @@ void Convolution::Run()
 #endif
                //_cast->SetOutputScalarTypeToDouble();
                _cast->Update();
-       }
-       else
-       {
+       } else {
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
                _cast->SetInput(_image);
@@ -99,5 +98,5 @@ void Convolution::Run()
 #endif
                _cast->SetOutputScalarType(_image->GetScalarType());
                _cast->Update();
-       }       
+       } // if _on
 }
index 66763d670b4b49750d4377b9f49fbacdce56a36a..0df52af9b15608a3e105e1ff4076e9be15bd8b4d 100644 (file)
@@ -111,6 +111,7 @@ void Transformer::SetScaleZ(double scaleZ)
 */
 vtkTransform *Transformer::GetResult()
 {
+       _transform->Update();
        return _transform;
 }
 
index 874968555fb68b43109df524653f919f25abfe5c..6b3549f281714ea1b7643454b745b7a1487c10d0 100644 (file)
 //------------------------------------------------------------
 Transparency::Transparency()
 {
-       _image1=NULL;
-       _image2=NULL;
-       _percent=0;
-       _newImage = NULL;
-       _processed=false;
+       _image1         = NULL;
+       _image2         = NULL;
+       _percent        = 0;
+       _newImage       = NULL;
+       _processed      = false;
 }
 
 /*
@@ -52,36 +52,28 @@ Transparency::~Transparency()
 //------------------------------------------------------------
 void Transparency::calculateImage()
 {
-
        if(_image1!=NULL && _image2!=NULL)
        {
-
                // IMAGE 1
                        
                // Information from image1
                _image1->GetSpacing(spcImg1);
                _image1->GetExtent(extImg1);
                _type = _image1->GetScalarType();
-               
                // The Z dimension is 1 for a 2D image
                dimImg1[0] = extImg1[1] - extImg1[0]+1;
                dimImg1[1] = extImg1[3] - extImg1[2]+1;
                dimImg1[2] = 1;
-
                //IMAGE 2
-
                // Information from image2
                _image2->GetSpacing(spcImg2);
                _image2->GetExtent(extImg2);
-               
                // The Z dimension is 1 for a 2D image
                dimImg2[0] = extImg2[1] - extImg2[0]+1;
                dimImg2[1] = extImg2[3] - extImg2[2]+1;
                dimImg2[2] = 1;
-
                long numPixelsImg1 = dimImg1[0]*dimImg1[1];
-               long numPixelsImg2 = dimImg2[0]*dimImg2[1];
-               
+               long numPixelsImg2 = dimImg2[0]*dimImg2[1];             
                double factorX = 1;
                double factorY = 1;
                vtkImageResample *resample = vtkImageResample::New();
@@ -99,7 +91,6 @@ void Transparency::calculateImage()
                        resample->SetAxisMagnificationFactor(0,factorX);
                        resample->SetAxisMagnificationFactor(1,factorY);
                        resample->SetInformationInput(_image2);
-
                        initialize(dimImg2, spcImg2);
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
@@ -107,7 +98,6 @@ void Transparency::calculateImage()
 #else
                        resample->Update();
 #endif
-
                        result = resample->GetOutput();
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
@@ -116,10 +106,7 @@ void Transparency::calculateImage()
                        //...
 #endif
                        createImage(result,_image2,dimImg2[0],dimImg2[1]);              
-                       
-               } //if
-               else if (numPixelsImg1>numPixelsImg2)
-               {
+               } else if (numPixelsImg1>numPixelsImg2) {
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
                        resample->SetInput(_image2);
@@ -131,9 +118,7 @@ void Transparency::calculateImage()
                        resample->SetAxisMagnificationFactor(0,factorX);
                        resample->SetAxisMagnificationFactor(1,factorY);
                        resample->SetInformationInput(_image1);
-
                        initialize(dimImg1, spcImg1);
-
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
                        // ...
@@ -148,11 +133,8 @@ void Transparency::calculateImage()
 #else
                        result->Modified();
 #endif
-
                        createImage(_image1,result,dimImg1[0],dimImg1[1]);
-               } // else if
-               else
-               {
+               } else {
                        //If both images have the same number of pixels, the resultant image will have the 
                        //properties of the first image.
 //EED 2017-01-01 Migration VTK7
@@ -173,23 +155,18 @@ void Transparency::calculateImage()
 #else
                        resample->Update();
 #endif
-
                        result = resample->GetOutput();
-
 //EED 2017-01-01 Migration VTK7
 #if VTK_MAJOR_VERSION <= 5
                        result->Update();
 #else
                        result->Modified();
 #endif
-                       
                        createImage(_image1,result,dimImg1[0],dimImg1[1]);
-
                } //else
-               
                resample->Delete();             
                _processed=true;
-       }
+               }
 }
 
 void Transparency::initialize(int dimensions[], double spacing[])
@@ -206,28 +183,23 @@ void Transparency::initialize(int dimensions[], double spacing[])
 #else
        _newImage->AllocateScalars(_type,1);
 #endif
-
-
 }
 
 void Transparency::createImage(vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY)
 {
-//     int i, j;  EED ???
-
        if(_type == VTK_CHAR)
        {
                //POINTERS: 
-               char* dataImagePointer1 = NULL;
-               char* dataImagePointer2 = NULL;
-               char* dataImageResultPointer = NULL;
-       
+               char* dataImagePointer1                 = NULL;
+               char* dataImagePointer2                 = NULL;
+               char* dataImageResultPointer    = NULL;
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
        else if(_type == VTK_SIGNED_CHAR)
        {
                //POINTERS: 
-               signed char* dataImagePointer1 = NULL;
-               signed char* dataImagePointer2 = NULL;
+               signed char* dataImagePointer1          = NULL;
+               signed char* dataImagePointer2          = NULL;
                signed char* dataImageResultPointer = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
@@ -235,27 +207,27 @@ void Transparency::createImage(vtkImageData *img1, vtkImageData *img2, int sizeX
        else if(_type == VTK_UNSIGNED_CHAR)
        {
                //POINTERS: 
-               unsigned char* dataImagePointer1 = NULL;
-               unsigned char* dataImagePointer2 = NULL;
-               unsigned char* dataImageResultPointer = NULL;
+               unsigned char* dataImagePointer1                = NULL;
+               unsigned char* dataImagePointer2                = NULL;
+               unsigned char* dataImageResultPointer   = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
        else if(_type == VTK_SHORT)
        {
                //POINTERS: 
-               short* dataImagePointer1 = NULL;
-               short* dataImagePointer2 = NULL;
-               short* dataImageResultPointer = NULL;
+               short* dataImagePointer1                = NULL;
+               short* dataImagePointer2                = NULL;
+               short* dataImageResultPointer   = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
        else if(_type == VTK_UNSIGNED_SHORT)
        {
                //POINTERS: 
-               unsigned short* dataImagePointer1 = NULL;
-               unsigned short* dataImagePointer2 = NULL;
-               unsigned short* dataImageResultPointer = NULL;
+               unsigned short* dataImagePointer1               = NULL;
+               unsigned short* dataImagePointer2               = NULL;
+               unsigned short* dataImageResultPointer  = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
@@ -289,27 +261,27 @@ void Transparency::createImage(vtkImageData *img1, vtkImageData *img2, int sizeX
        else if(_type == VTK_UNSIGNED_LONG)
        {
                //POINTERS: 
-               unsigned long* dataImagePointer1 = NULL;
-               unsigned long* dataImagePointer2 = NULL;
-               unsigned long* dataImageResultPointer = NULL;
+               unsigned long* dataImagePointer1                = NULL;
+               unsigned long* dataImagePointer2                = NULL;
+               unsigned long* dataImageResultPointer   = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);              
        }
        else if(_type == VTK_FLOAT)
        {
                //POINTERS: 
-               float* dataImagePointer1 = NULL;
-               float* dataImagePointer2 = NULL;
-               float* dataImageResultPointer = NULL;
+               float* dataImagePointer1                = NULL;
+               float* dataImagePointer2                = NULL;
+               float* dataImageResultPointer   = NULL;
        
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
        else if(_type == VTK_DOUBLE)
        {
                //POINTERS: 
-               double* dataImagePointer1 = NULL;
-               double* dataImagePointer2 = NULL;
-               double* dataImageResultPointer = NULL;
+               double* dataImagePointer1               = NULL;
+               double* dataImagePointer2               = NULL;
+               double* dataImageResultPointer  = NULL;
 
                createImageByType(dataImagePointer1, dataImagePointer2, dataImageResultPointer, img1, img2, sizeX, sizeY);
        }
@@ -320,15 +292,12 @@ void Transparency::createImage(vtkImageData *img1, vtkImageData *img2, int sizeX
 #else
        _newImage->Modified();
 #endif
-
-
 }
 
 template <class T>
 void Transparency::createImageByType(T* dataImagePointer1, T* dataImagePointer2, T* dataImageResultPointer, vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY)
 {
        int i, j;
-       
        dataImagePointer1 = (T*) img1->GetScalarPointer(0,0,0);
        dataImagePointer2 = (T*) img2->GetScalarPointer(0,0,0);
        dataImageResultPointer = (T*) _newImage->GetScalarPointer(0,0,0);
@@ -339,12 +308,11 @@ void Transparency::createImageByType(T* dataImagePointer1, T* dataImagePointer2,
                        dataImagePointer1 = (T*)img1->GetScalarPointer(i,j,0);
                        dataImagePointer2 = (T*)img2->GetScalarPointer(i,j,0);
                        dataImageResultPointer = (T*)_newImage->GetScalarPointer(i,j,0);
-                       
                        *dataImageResultPointer = (T)*dataImagePointer1*_percent + (T)*dataImagePointer2*(1-_percent);                          
-               }
-       }
+               } // for h
+       } // for i
 }
-
+       
 /*
 * Get new image
 */
index 3c97c2ec3272ac965b7390a6bafedea8e6963b77..25f55f8a91bb705d4700ac6f2bb6d1e31ed1e28f 100644 (file)
@@ -36,58 +36,41 @@ class Transparency
        public: 
                Transparency();
                ~Transparency();
-
                //Calculate the new image and save it in the attribute image
                void calculateImage();
-               
                //Gets the result
                vtkImageData* getImage();
-               
                void setImage1(vtkImageData *image);
-
                void setImage2(vtkImageData *image);
-
                void setPercent(int percent);
-
                //Initialize newImage points
                void initialize(int dimensions[], double spacing[]);
-
                //Constructs a new transparent image
                void createImage(vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY);
-
                //Template for constructing the image by image type
                template <class T> void createImageByType(T* dataImagePointer1, T* dataImagePointer2, T* dataImageResultPointer, vtkImageData *img1, vtkImageData *img2, int sizeX, int sizeY);
 
        // --- Atributes --- //
        private: 
-
                bool _processed;
-
                int _type;
-
                vtkImageData *_image1;
-
                vtkImageData *_image2;
-
                //Resulting image
                vtkImageData *_newImage;
-
                //Percent of transparency for the second image
                double _percent;
-
                // Image 1 extent (iniX, finX, iniY, finY, iniZ, finZ)
                int extImg1[6];
                // Dimensionality image 1
                int dimImg1[3];
                // Image 1 spacing
                double spcImg1[3];
-
                // Image 2 extent (iniX, finX, iniY, finY, iniZ, finZ)
                int extImg2[6];
                // Dimensionality image 2
                int dimImg2[3];
                // Image 2 spacing
                double spcImg2[3];
-
 };