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,
145 AObject * myCurrentImage ;
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,
194 indivTr(
int(data->
MaxT()+1.1 ) );
196 std::vector<float> vpos( 4 );
201 for (
int t = 0 ; t < data->
MaxT()+1 ; ++t )
205 indiv(0,t) = dt - meanSignal[t];
206 indivTr(t,0) = dt - meanSignal[t];
238 float myChangingFlag ;
239 float myUpdatingFlag ;
240 anatomist::RoiDynSegmentActionView_Private * _private ;
void faithIntervalChanged(int nSigma)
void computeModeChanged(int growthMode)
void refineModeChanged(int mode)
void orderChanged(int order)
virtual void update(const anatomist::Observable *, void *)
This method is called whenever the observed object is changed.
void findNearestMinimumModeChanged(int findLocalMinimum)
virtual ~RoiDynSegmentActionView()
RoiDynSegmentActionView(anatomist::RoiDynSegmentAction *myAction, QWidget *parent)
void dimensionModeChanged(int newDimensionMode)
Base Anatomist object (abstract)
virtual float MaxT() const
Obsolete, deprecated.
virtual float mixedTexValue(const std::vector< float > &pos, const Referential *orgRef) const
Gets a "mixed" texture value at a given space / time location.
This class can be subclassed to represent an object that the programmer wants to have observed.
A class can implement the Observer interface when it wants to be informed of changes in observable ob...
void changeFaithInterval(int newFaithInterval)
void changeOrder(int newOrder)
virtual QWidget * actionView(QWidget *)
void findNearestMinimumModeOn()
void setPointToSegmentByDiscriminatingAnalyse(int x, int y, int, int)
virtual bool viewableAction() const
int dimensionMode() const
void increaseFaithInterval()
void findNearestMinimumModeOff()
bool displayResults() const
int findNearestMinimum() const
virtual std::string name() const
virtual void unregisterObservable(anatomist::Observable *)
Called when an observable is destroyed, only called by Observable: don't use this function directly.
virtual ~RoiDynSegmentAction()
int faithInterval() const
void decreaseFaithInterval()
void replaceRegion(int x, int y, int, int)
virtual void update(const anatomist::Observable *, void *)
This method is called whenever the observed object is changed.
static Action * creator()
VolumeRef< T > matrix_product(const Volume< T > &v1, const Volume< T > &v2)
float norm2(const AimsVector< T, D > &v1)