+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+# pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+# This software is governed by the CeCILL-B license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL-B
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+# or in the file LICENSE.txt.
+#
+# As a counterpart to the access to the source code and rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
#include "ContourExtractData.h"
void ContourExtractData::SetImage( vtkImageData* imagedata)
{
this->imagedata = imagedata;
+ this->imagedata->GetScalarRange(scalarRange);
// RaC 20-11-09 Changes in InitLstContoursLinesYPoints
int ext[6];
int result = 0;
int i;
- //cout<<"RaC ContourExtractData::AnalisisContourInsideV2-iContour:"<<iContour<<" y:"<<y<<endl;
-
int nps=_lstlstlstVecX1[iContour][y].size();
double x1,y1,x2,y2;
if ((i>=0) && (i<=ext[1]) && (j>=0) && (j<=ext[3]))
{
- if (isInside(i,j,_typeOperation)==true)
+ if (isInside(i,j,_typeOperation)==true)
{
- value = GetDataValue(i,j,zImage);
+ value = GetDataValue(i,j,zImage);
+ if ( (value>=scalarRange[0]) && (value<=scalarRange[1]) )
+ {
PutVtkImageDataResultValue(i,j,zImage, value );
- } // if
-
- }//if
+ } // scalarRange
+ } // if isInside
+ } // if ext
} // for i
} // for j
}
//------------------------------------------------------------------------
-void ContourExtractData::GetValuesInsideCrown(std::vector<double> *pLstValue,
- std::vector<double> *pLstValuePosX,
- std::vector<double> *pLstValuePosY,
- std::vector<double> *pLstValuePosZ)
+void ContourExtractData::GetValuesInsideCrown( int *numberOfPixels,
+ std::vector<double> *pLstValue,
+ std::vector<double> *pLstValuePosX,
+ std::vector<double> *pLstValuePosY,
+ std::vector<double> *pLstValuePosZ)
{
pLstValue->clear();
pLstValuePosX->clear();
int maxPoint[2];
int i,j;
double value;
-
+ int acum=0;
minPoint[0] = 999999;
minPoint[1] = 999999;
if ((i>=0) && (i<=ext[1]) && (j>=0) && (j<=ext[3]))
{
-
- if (isInside(i,j,_typeOperation)==true)
+ if (isInside(i,j,_typeOperation)==true)
{
- value = GetDataValue(i,j,zImage);
-
- // Borrame
- // if (okImagesResults==true){
- // PutVtkImageDataResultValue(i,j,zImage, value );
- // }
-
- pLstValue -> push_back( value );
- pLstValuePosX -> push_back( i );
- pLstValuePosY -> push_back( j );
- pLstValuePosZ -> push_back( -1 );
- } // if
-
- } //if
+ acum++;
+ value = GetDataValue(i,j,zImage);
+ if ( (value>=scalarRange[0]) && (value<=scalarRange[1]) )
+ {
+ pLstValue -> push_back( value );
+ pLstValuePosX -> push_back( i );
+ pLstValuePosY -> push_back( j );
+ pLstValuePosZ -> push_back( -1 );
+ } // scalarRange
+ } // if isInside
+ } // if ext
} // for
} // for
- // Borrame
- // if (this->okImagesResults==true){
- // imagedataValueResult->Modified();
- // imagedataMaskResult->Modified();
- // }
-
-
+ *numberOfPixels = acum;
}
//------------------------------------------------------------------------
acum_standardeviation = acum_standardeviation + tmp*tmp;
} // for standar deviation
standardeviation = sqrt(acum_standardeviation/size);
- SetVolumeStatistics(countRange, size,
- min,max,
- acum_average,acum_standardeviation);
+ SetVolumeStatistics(countRange, (*rsize),
+ min,max,
+ acum_average,acum_standardeviation);
} // if size
} // if NULL
}
+void ContourExtractData::SetScalarRange(double min, double max)
+{
+ scalarRange[0]=min;
+ scalarRange[1]=max;
+}
+
void ContourExtractData::SetSizeImageY(int pSizeImageY)
{
_sizeImageY=pSizeImageY;