QCamFindShift_hotSpot.hpp

00001 #ifndef _QCamFindShift_hotSpot_hpp_
00002 #define _QCamFindShift_hotSpot_hpp_
00003 
00004 #include "QCamFindShift.hpp"
00005 #include "Vector2D.hpp"
00006 
00007 class QVGroupBox;
00008 class QCamSlider;
00009 class QFrameDisplay;
00010 
00013 class QCamFindShift_hotSpot : public QCamFindShift {
00014    Q_OBJECT;
00015 public:
00016    QCamFindShift_hotSpot();
00017    QWidget * buildGUI(QWidget *);
00018    virtual QCamFrame image() const;
00019 public slots:
00021    void setSeuil(int value);
00023    void setAutoSeuil(bool value);
00024   
00029    void setSearchBoxSize(int value);
00030 
00034    void setBinning(int value);
00035 signals:
00036    void seuilChanged(int);
00037    void autoSeuilChanged(bool);
00038    void searchBoxSizeChanged(int);
00039 protected:
00040    bool registerFirstFrame();
00041    bool findShift(ShiftInfo & shift);
00042    Vector2D firstHotSpot_;
00043 private:
00044    void computeCenterImg(int size,const Vector2D & center);
00045    bool findHotSpot(Vector2D & shift);
00046    double findHotSpot(const Vector2D & from,
00047                       Vector2D & center);
00048    int computeSeuil() const;
00049    int computePixelWeight(int pixelVal) const {
00050       pixelVal-=seuil_;
00051       if (pixelVal>0) {
00052          pixelVal=pixelVal*255/(255-seuil_);
00053          pixelVal*=pixelVal;  
00054       }
00055       return pixelVal;
00056    }
00057    double computeBarycenter(const Vector2D & from,
00058                             int seuil,int step,
00059                             int size,
00060                             Vector2D & bary,
00061                             double maxCoverage) const;
00062    double lastBrightness_;
00063    Vector2D lastCenter_;
00064    
00065    int searchBoxSize_;
00066    int seuil_;
00067 
00068    int binning_;
00069 
00070    QCamFrame centerImg_;
00071    
00072    /* GUI data */
00073    QVGroupBox * mainBox_;
00074    QCamSlider * seuilSlider_;
00075    QCamSlider * bigBoxSlider_;
00076    QFrameDisplay * dispImgCenter_;
00077    bool autoSeuil_;
00078 };
00079 
00080 #endif

Generated on Sat Oct 27 09:21:03 2007 for QastroCam by  doxygen 1.5.1