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