if ((bbGetInputImage()!=NULL) && (bbGetInputMask()!=NULL))
{
- int extImage[6];
- int extMask[6];
- vtkImageData *resultImage=NULL;
+ int extImage[6];
+ int extMask[6];
+ vtkImageData *resultImage=NULL;
bbGetInputImage()->GetExtent( extImage );
bbGetInputImage()->GetExtent( extMask );
- int dimXImage = extImage[1]-extImage[0]+1;
- int dimYImage = extImage[3]-extImage[2]+1;
- int dimZImage = extImage[5]-extImage[4]+1;
- int dimXMask = extMask[1]-extMask[0]+1;
- int dimYMask = extMask[3]-extMask[2]+1;
- int dimZMask = extMask[5]-extMask[4]+1;
+ int dimXImage = extImage[1]-extImage[0]+1;
+ int dimYImage = extImage[3]-extImage[2]+1;
+ int dimZImage = extImage[5]-extImage[4]+1;
+ int dimXMask = extMask[1]-extMask[0]+1;
+ int dimYMask = extMask[3]-extMask[2]+1;
+ int dimZMask = extMask[5]-extMask[4]+1;
+ double background = bbGetInputBackground();
+ double bgToAnalice = bbGetInputBackgroundToAnalice();
if (bbGetInputType()==0)
{
(dimZImage==dimZMask))
{
long int i, size = dimXImage * dimYImage * dimZImage;
+ DEF_POINTER_IMAGE_VTK_CREA(vI,ssI,pI,stI, bbGetInputImage() );
+ DEF_POINTER_IMAGE_VTK_CREA(vM,ssM,pM,stM, bbGetInputMask() );
+ DEF_POINTER_IMAGE_VTK_CREA(vO,ssO,pO,stO, resultImage );
+long int k1omp=(double)(size-1)*0.0;
+long int k2omp=(double)(size-1)*0.2;
+long int k3omp=(double)(size-1)*0.4;
+long int k4omp=(double)(size-1)*0.6;
+long int k5omp=(double)(size-1)*0.8;
+long int k6omp=(double)(size-1)*1.0;
+printf("EED ApplyMask::Process (with openmp)\n");
#pragma omp parallel for
for (i=0; i<size;i++)
{
- DEF_POINTER_IMAGE_VTK_CREA(vI,ssI,pI,stI, bbGetInputImage() );
- DEF_POINTER_IMAGE_VTK_CREA(vM,ssM,pM,stM, bbGetInputMask() );
- DEF_POINTER_IMAGE_VTK_CREA(vO,ssO,pO,stO, resultImage );
- GETVALUE2_VTK_CREA(vM,pM,stM,i);
-
+if ( (k1omp==i) || (k2omp==i) || (k3omp==i) ||
+ (k4omp==i) || (k5omp==i) || (k6omp==i) ) { printf(" %d%\n", (int)(((double)i/(double)(size-1))*100 )); }
+ double vItmpOMP;
+ double vMtmpOMP;
+ double vOtmpOMP;
+ GETVALUE2_VTK_CREA(vMtmpOMP,pM,stM,i);
if (bbGetInputType()==0) //Applay mask to new Image
{
- GETVALUE2_VTK_CREA(vI,pI,stI,i);
- if (vM!=0)
+ GETVALUE2_VTK_CREA(vItmpOMP,pI,stI,i);
+ if (vMtmpOMP!=bgToAnalice)
{
- vO = vI;
+ vOtmpOMP = vItmpOMP;
} else {
- vO = bbGetInputBackground();
- }
- SETVALUE2_VTK_CREA(vO,pO,stO,i);
+ vOtmpOMP = background;
+ } // if vM
+ SETVALUE2_VTK_CREA(vOtmpOMP,pO,stO,i);
} // if Type==0
-
if (bbGetInputType()==1) //Modifiy the Input image with the Label value in Mask place
{
- if (vM!=0)
+ if (vMtmpOMP!=bgToAnalice)
{
- vO = bbGetInputLabel();
- SETVALUE2_VTK_CREA(vO,pO,stO,i);
+ vOtmpOMP = bbGetInputLabel();
+ SETVALUE2_VTK_CREA(vOtmpOMP,pO,stO,i);
}
- } // if Type==0
-
+ } // if Type==1
if (bbGetInputType()==2) //Modifiy the Input image with the Mask value
{
- if (vM!=0)
+ if (vMtmpOMP!=bgToAnalice)
{
- vO = vM;
- SETVALUE2_VTK_CREA(vO,pO,stO,i);
+ vOtmpOMP = vMtmpOMP;
+ SETVALUE2_VTK_CREA(vOtmpOMP,pO,stO,i);
}
- } // if Type==0
-
+ } // if Type==2
} // for
} //if dim
- bbSetOutputOut( resultImage );
+ resultImage->Modified();
+ bbSetOutputOut( resultImage );
} // if Image && Mask
-
}
//=====
// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
// Here we initialize the input 'In' to 0
bbSetInputImage(NULL);
bbSetInputMask(NULL);
- bbSetInputBackground(0);
+ bbSetInputBackground(0); // output image Type 0
+ bbSetInputBackgroundToAnalice(0);
bbSetInputLabel(255);
bbSetInputType(0);
bbSetOutputOut(NULL);