X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkGrayLevel.cxx;h=75ae894f1e89c5af3de63f0d9cec244d5c80938d;hb=6196c24cbb7b38c5862fb1aa30b69b4d33112825;hp=4f8ca61e3747575e0783ff8d31ab43d245813d6b;hpb=b2426b967d278b6ef83d202be0d9f4dbe2aa9d8e;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx index 4f8ca61..75ae894 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkGrayLevel.cxx @@ -13,7 +13,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(GrayLevel,bbtk::AtomicBlackBox); //===== void GrayLevel::Process() { - // THE MAIN PROCESSING METHOD BODY // Here we simply set the input 'In' value to the output 'Out' // And print out the output value @@ -28,27 +27,40 @@ void GrayLevel::Process() // vtkImageData *m_image = vtkImageData::New(); // m_image = bbGetInputImage(); - double grayLevel = -9999; std::vector coord = bbGetInputCoordinate(); + int ext[6]; + int maxX,maxY,maxZ; double px,py,pz; if (bbGetInputImage()!=NULL) { double spc[3]; bbGetInputImage()->GetSpacing(spc); - if (coord.size()>=2) + bbGetInputImage()->GetExtent(ext); + maxX = ext[1]-ext[0]+1; + maxY = ext[3]-ext[2]+1; + maxZ = ext[5]-ext[4]+1; + if (coord.size()==3) { if (bbGetInputWithSpacing()==true) { - px = round(coord[0]/spc[0]); - py = round(coord[1]/spc[1]); - pz = round(coord[2]/spc[2]); + px = coord[0]/spc[0]; + py = coord[1]/spc[1]; + pz = coord[2]/spc[2]; } else { - px = round(coord[0]); - py = round(coord[1]); - pz = round(coord[2]); + px = coord[0]; + py = coord[1]; + pz = coord[2]; }// if - grayLevel = bbGetInputImage()->GetScalarComponentAsDouble( px,py,pz,0); + px=round(px); + py=round(py); + pz=round(pz); + if ( (px>=0) && (px=0) && (py=0) && (pzGetScalarComponentAsDouble( px,py,pz,0); + } else { + grayLevel = -9991; + } // if px py pz } // coord std::vector lstGL; std::vector lstX = bbGetInputLstPointsX(); @@ -61,15 +73,24 @@ void GrayLevel::Process() { if (bbGetInputWithSpacing()==true) { - px = round(lstX[i]/spc[0]); - py = round(lstY[i]/spc[1]); - pz = round(lstZ[i]/spc[2]); + px = lstX[i]/spc[0]; + py = lstY[i]/spc[1]; + pz = lstZ[i]/spc[2]; } else { - px = round(lstX[i]); - py = round(lstY[i]); - pz = round(lstZ[i]); + px = lstX[i]; + py = lstY[i]; + pz = lstZ[i]; }// if - lstGL.push_back( bbGetInputImage()->GetScalarComponentAsDouble( px,py,pz,0) ); + + px = round(px); + py = round(py); + pz = round(pz); + if ( (px>=0) && (px=0) && (py=0) && (pzGetScalarComponentAsDouble( px, py,pz,0) ); + } else { + lstGL.push_back( -9991 ); + } }// for bbSetOutputLstGrayLevel(lstGL); } // if size of Lst