X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkApplyMask.cxx;h=463ee223014c2fef4b19ff71ea3bca51abb7608f;hb=6b5dabc10fd9780f19f7ce0ee287a9f8d9a09267;hp=264f55e4a42562403d1ade926ea4eda0e33d5646;hpb=0a78cc1bbbd1875930b8e9b74053f947e33691ef;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkApplyMask.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkApplyMask.cxx index 264f55e..463ee22 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkApplyMask.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkApplyMask.cxx @@ -34,61 +34,112 @@ void ApplyMask::Process() if ((bbGetInputImage()!=NULL) && (bbGetInputMask()!=NULL)) { - int extImage[6]; + int extImage[6]; + int extMask[6]; + vtkImageData *resultImage=NULL; bbGetInputImage()->GetExtent( extImage ); - int dimXImage = extImage[1]-extImage[0]+1; - int dimYImage = extImage[3]-extImage[2]+1; - int dimZImage = extImage[5]-extImage[4]+1; - - int extMask[6]; bbGetInputImage()->GetExtent( extMask ); - 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) + { + if (bbGetOutputOut()!=NULL) + { + bbGetOutputOut()->Delete(); + } + + resultImage = vtkImageData::New(); + resultImage->Initialize(); + resultImage->SetSpacing( bbGetInputImage()->GetSpacing() ); + resultImage->SetDimensions( dimXImage, dimYImage, dimZImage ); + resultImage->AllocateScalars( bbGetInputImage()->GetScalarType(),1 ); + } // if Type==0 + if (bbGetInputType()==1) + { + resultImage=bbGetInputImage(); + } // if Type==1 + + if (bbGetInputType()==2) + { + resultImage=bbGetInputImage(); + } // if Type==2 - if (bbGetOutputOut()!=NULL) + if (bbGetInputType()==3) { - bbGetOutputOut()->Delete(); - } + resultImage=bbGetInputImage(); + } // if Type==3 - vtkImageData *resultImage=NULL; - resultImage = vtkImageData::New(); - resultImage->Initialize(); - resultImage->SetSpacing( bbGetInputImage()->GetSpacing() ); - resultImage->SetDimensions( dimXImage, dimYImage, dimZImage ); - resultImage->AllocateScalars( bbGetInputImage()->GetScalarType(),1 ); - if ((dimXImage==dimXMask) && (dimYImage==dimYMask) && (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; iModified(); + 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) @@ -100,7 +151,10 @@ void ApplyMask::bbUserSetDefaultValues() // 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); }