00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef MOTION_DETECTOR_H
00022 #define MOTION_DETECTOR_H
00023
00024 #include <QObject>
00025 #include <QImage>
00026 #include <QColor>
00027
00028 #include <cv.h>
00029 #include <highgui.h>
00030
00031 class MotionDetector : public QObject
00032 {
00033 Q_OBJECT
00034 public:
00035 MotionDetector(QObject *parent = 0);
00036 ~MotionDetector();
00037 bool show_global_;
00038 bool show_component_;
00039
00040 public slots:
00041 void set_motion_color(const QColor &);
00042 void input(const IplImage &);
00043 void set_threshold(int);
00044
00045 private:
00046 int threshold_;
00047 void update_mhi(const IplImage* img, IplImage* dst, int diff_threshold);
00048 IplImage *motion_;
00049 QColor color_;
00050 int last;
00051
00052
00053 IplImage **buf;
00054
00055
00056 IplImage *mhi;
00057 IplImage *orient;
00058 IplImage *mask;
00059 IplImage *red;
00060 IplImage *green;
00061 IplImage *blue;
00062 IplImage *segmask;
00063 CvMemStorage* storage;
00064
00065 signals:
00066 void output(const IplImage &);
00067 void error(const QString &);
00068 void motion();
00069 };
00070 #endif
00071