diff options
| author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-11-22 18:41:30 +0900 |
|---|---|---|
| committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-11-22 20:55:03 +0900 |
| commit | 5bed6e4a4c916a97f8fe4d1b07f7eecf4d733b90 (patch) | |
| tree | f89cc49efc9ca1d0e1579ecb079ee7e7088ff8c8 /src/imageplugins/hotpixels/weights.h | |
| parent | 0bfbf616d9c1fd7abb1bd02732389ab35e5f8771 (diff) | |
| download | digikam-5bed6e4a.tar.gz digikam-5bed6e4a.zip | |
Rename 'digikam' folder to 'src'
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit ee0d99607c14cb63d3ebdb3a970b508949fa8219)
Diffstat (limited to 'src/imageplugins/hotpixels/weights.h')
| -rw-r--r-- | src/imageplugins/hotpixels/weights.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/imageplugins/hotpixels/weights.h b/src/imageplugins/hotpixels/weights.h new file mode 100644 index 00000000..b82fde89 --- /dev/null +++ b/src/imageplugins/hotpixels/weights.h @@ -0,0 +1,90 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date : 2005-03-27 + * Description : a class to calculate filter weights + * + * Copyright (C) 2005-2006 by Unai Garro <ugarro at users dot sourceforge dot net> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#ifndef WEIGHTS_H +#define WEIGHTS_H + +// TQt includes. + +#include <tqrect.h> +#include <tqvaluelist.h> + +namespace DigikamHotPixelsImagesPlugin +{ + +class Weights +{ +public: + + Weights(){}; + Weights(const Weights &w); + void operator=(const Weights &w); + + ~Weights() + { + if (!mWeightMatrices) return; + for (unsigned int i=0; i<mPositions.count(); i++) + { + for (unsigned int j=0; j<mHeight; j++) delete[] mWeightMatrices[i][j]; + } + } + + unsigned int height() const { return mHeight; }; + unsigned int polynomeOrder() const { return mPolynomeOrder; }; + bool twoDim() const { return mTwoDim; }; + unsigned int width() const { return mWidth; }; + + void setHeight(int h) { mHeight=h; }; + void setPolynomeOrder(int order) { mPolynomeOrder=order; }; + void setTwoDim(bool td) { mTwoDim=td; }; + void setWidth(int w) { mWidth=w; }; + + void calculateWeights(); + bool operator==(const Weights& ws) const; + double** operator[](int n) const { return mWeightMatrices[n]; }; + const TQValueList <TQPoint> positions() const { return mPositions; }; + +protected: + + int coefficientNumber() const { return mCoefficientNumber; }; + + double*** weightMatrices() const { return mWeightMatrices; }; + +private: + + double polyTerm (const size_t i_coeff, const int x, const int y, const int poly_order); + void matrixInv (double *const a, const size_t size); + +private: + + unsigned int mHeight,mWidth; + unsigned int mCoefficientNumber; + bool mTwoDim; + unsigned int mPolynomeOrder; + double *** mWeightMatrices; //Stores a list of weight matrices + TQValueList <TQPoint> mPositions; +}; + +} // NameSpace DigikamHotPixelsImagesPlugin + +#endif // WEIGHTS_H |
