RAWK
Gigapixel Raw Image Processing Toolkit
 All Classes Functions Variables Pages
image_gain.hpp
1 // RAWK Copyright (C) 2014 Robert Kooima
2 //
3 // This program is free software: you can redistribute it and/or modify it
4 // under the terms of the GNU General Public License as published by the Free
5 // Software Foundation, either version 3 of the License, or (at your option)
6 // any later version.
7 //
8 // This program is distributed in the hope that it will be useful, but WITH-
9 // OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 // more details.
12 
13 #ifndef IMAGE_GAIN_HPP
14 #define IMAGE_GAIN_HPP
15 
16 //------------------------------------------------------------------------------
17 
19 
20 class gain : public image
21 {
22 public:
24 
25  gain(double value, image *L) : image(L), value(value) { }
26 
27  virtual double get(int i, int j, int k) const
28  {
29  return L->get(i, j, k) * value;
30  }
31 
32  virtual void tweak(int a, int v)
33  {
34  if (a == 0) value += 0.1 * v;
35  }
36 
37  virtual void doc(std::ostream& out) const
38  {
39  out << "gain " << value;
40  }
41 
42 private:
43  double value;
44 };
45 
46 //------------------------------------------------------------------------------
47 
48 #endif
virtual double get(int i, int j, int k) const =0
Return the value of the sample at row i, column j, channel k.
virtual void doc(std::ostream &out) const
Produce a string documenting the function of this object.
Definition: image_gain.hpp:37
image * L
Left child.
Definition: image.hpp:117
gain(double value, image *L)
Multiply value by all samples of L. This alters the contrast of L.
Definition: image_gain.hpp:25
Base class for all image sources, filters, and operators.
Definition: image.hpp:20
virtual void tweak(int a, int v)
Tweak image parameter a, changing the value by a factor of v.
Definition: image_gain.hpp:32
Gain filter.
Definition: image_gain.hpp:20