33 #ifndef ROI_DYNSEGMENT_ACTION_H 34 #define ROI_DYNSEGMENT_ACTION_H 54 class RoiDynSegmentActionView_Private ;
67 virtual std::string
name()
const ;
75 int order()
const {
return myOrder ; }
79 float meanValue()
const {
return myInsideMeanError ; }
99 myDimensionMode =
TWOD ;
100 std::cout <<
"Dymension Mode set to 2D" << std::endl ;
104 myDimensionMode =
THREED ;
105 std::cout <<
"Dymension Mode set to 3D" << std::endl ;
115 struct PointLess :
public std::binary_function< Point3d, Point3d , bool>
119 return( p1[2] < p2[2]
120 || ( (p1[2] == p2[2]) && (p1[1] < p2[1]) )
121 || ( (p1[2] == p2[2])
122 && (p1[1] == p2[1]) && (p1[0] < p2[0]) ) ) ;
126 bool findLocalBestSeed(
const Point3d& dims,
const Point3d& halfSize ) ;
130 std::vector<float>& meanSignal,
131 float& mean,
float& var,
132 bool forceComputing =
false ) ;
133 void pcaRegionGrowth( ) ;
134 void growth( std::list< std::pair< Point3d, ChangesItem> >* changes ) ;
135 void refinePCA( std::list< std::pair< Point3d, ChangesItem> >* changes ) ;
138 std::vector<float>& meanSignal ) ;
140 const Point3df& p,
const std::vector<float>& meanSignal,
149 bool myOrderChanged ;
151 bool myFindNearestMinimumMode ;
152 bool myDisplayResults ;
154 int myFaithInterval ;
157 float myInsideMeanError ;
158 float myInsideSigmaError ;
159 std::vector<float> myMeanSignal ;
160 std::map<Point3d, float, PointLess> myPreviousComputing ;
172 std::vector<float> vpos( 4 );
177 for(
int t = 0; t <= data->
MaxT(); ++t )
190 const std::vector<float>& meanSignal,
195 std::vector<float> vpos( 4 );
200 for (
int t = 0 ; t < data->
MaxT()+1 ; ++t )
204 indiv(0,t) = dt - meanSignal[t];
205 indivTr(t,0) = dt - meanSignal[t];
212 return indiv.
cross( errorMatrix.
cross(indivTr) )(0,0) / norm2 ;
228 void faithIntervalChanged(
int nSigma ) ;
229 void orderChanged(
int order ) ;
230 void dimensionModeChanged(
int newDimensionMode ) ;
231 void computeModeChanged(
int growthMode ) ;
232 void findNearestMinimumModeChanged(
int findLocalMinimum ) ;
234 void refineModeChanged(
int mode ) ;
236 float myChangingFlag ;
237 float myUpdatingFlag ;
238 anatomist::RoiDynSegmentActionView_Private * _private ;
void decreaseFaithInterval()
virtual void update(const anatomist::Observable *, void *)
This method is called whenever the observed object is changed.
Base Anatomist object (abstract)
virtual void unregisterObservable(anatomist::Observable *)
Called when an observable is destroyed, only called by Observable: don't use this function directly...
void changeOrder(int newOrder)
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
void setPointToSegmentByDiscriminatingAnalyse(int x, int y, int, int)
void replaceRegion(int x, int y, int, int)
void findNearestMinimumModeOff()
int faithInterval() const
bool displayResults() const
float norm2(const AimsVector< T, D > &v1)
This class can be subclassed to represent an object that the programmer wants to have observed...
virtual ~RoiDynSegmentAction()
virtual std::string name() const
virtual float mixedTexValue(const std::vector< float > &pos, const Referential *orgRef) const
Gets a "mixed" texture value at a given space / time location.
static Action * creator()
void changeFaithInterval(int newFaithInterval)
int dimensionMode() const
int findNearestMinimum() const
AimsData< float > cross(const AimsData< float > &other)
virtual bool viewableAction() const
void findNearestMinimumModeOn()
void increaseFaithInterval()
virtual float MaxT() const
Obsolete, deprecated.
virtual QWidget * actionView(QWidget *)