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 <QVProcessingBlock>
00030
00032
00036 template <typename T, int C> class QVImageMeans: public QVProcessingBlock
00037 {
00038 private:
00039 QVImage<T, C> mean;
00040
00041 public:
00042 QVImageMeans(QString name = QString()): QVProcessingBlock(name)
00043 {
00044
00045 addProperty< QVImage<T,C> >("Input image", inputFlag|outputFlag);
00046
00047
00048 addProperty< QVImage<T,C> >("Output image", outputFlag);
00049 }
00050
00051 void iterate()
00052 {
00053
00054 const QVImage<T,C> image = getPropertyValue< QVImage<T,C> >("Input image");
00055
00056 if (mean.getCols() != image.getCols() || mean.getRows() != image.getRows())
00057 mean = image;
00058 else {
00059 QVImage<T, C> temp(mean.getCols(), mean.getRows());
00060 Add(image, mean, temp);
00061 mean = temp;
00062 }
00063
00064
00065 setPropertyValue< QVImage<T,C> >("Output image", mean);
00066 }
00067 };
00069
00070 #endif