00001 #ifndef _CamHistogram_hpp_
00002 #define _CamHistogram_hpp_
00003
00004 #include <qpainter.h>
00005 #include <qimage.h>
00006
00007
00008 #include <stdio.h>
00009 #include <stdlib.h>
00010
00011
00012
00013 #include "QCamClient.hpp"
00014
00015 class QPushButton;
00016 class QWidget;
00017 class QVGroupBox;
00018 class QProgressBar;
00019 class QLCDNumber;
00020 class QHBox;
00021 class QHGroupBox;
00022 class QLabel;
00023 class QHistogram;
00024 class QCam;
00025
00026 #define focusHistorySize_ 200
00027
00029 class CamHistogram : public QCamClient {
00030 Q_OBJECT
00031 public:
00032 CamHistogram(QCam &);
00033 QWidget & widget();
00034 const QWidget & widget() const;
00035 protected slots:
00036 void newFrame();
00037 private:
00038 QHGroupBox * mainWindow_;
00039 QVGroupBox * histoGroup_;
00040 QHistogram * histogramArea_;
00041 QVGroupBox * focusGroup_;
00042
00043 QPushButton * resetFocus_;
00044 QWidget * focusLevel_;
00045 QHistogram * focusArea_;
00046 QHBox * seeingGroup_;
00047 QLabel * seeingLabel_;
00048 QProgressBar * seeingLevel_;
00049
00050 void init();
00051
00052 int histogram_[256];
00053 int focusIndexValue_;
00054 double getDistFromNeibourg(int x,int y) const;
00055 };
00056
00057 #endif