00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVIMAGEMEANSWORKER_H
00026 #define QVIMAGEMEANSWORKER_H
00027
00028 #include <QVImage>
00029 #include <QVWorker>
00030
00035 template <typename T, int C> class QVImageMeans: public QVWorker
00036 {
00037 private:
00038 QVImage<T, C> mean;
00039
00040 public:
00041 QVImageMeans(QString name): QVWorker(name)
00042 {
00043
00044 addProperty< QVImage<T,C> >("Input image", inputFlag|outputFlag);
00045
00046
00047 addProperty< QVImage<T,C> >("Output image", outputFlag);
00048 }
00049
00050 void iterate()
00051 {
00052
00053 const QVImage<T,C> image = getPropertyValue< QVImage<T,C> >("Input image");
00054
00055 if (mean.getCols() != image.getCols() || mean.getRows() != image.getRows())
00056 mean = image;
00057 else {
00058 QVImage<T, C> temp(mean.getCols(), mean.getRows());
00059 Add(image, mean, temp);
00060 mean = temp;
00061 }
00062
00063
00064 setPropertyValue< QVImage<T,C> >("Output image", mean);
00065 }
00066 };
00067
00068 #endif