MCPcopy Create free account
hub / github.com/LuminanceHDR/LuminanceHDR / hueSquaredMean

Function hueSquaredMean

src/HdrWizard/AutoAntighosting.cpp:143–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143void hueSquaredMean(const HdrCreationItemContainer &data, vector<float> &HE) {
144 size_t width = data[0].frame()->getWidth();
145 size_t height = data[0].frame()->getHeight();
146 size_t numItems = data.size();
147
148 float r, g, b, h, s, l;
149
150 BufferF hues(numItems, 0.f);
151 BufferF HS(numItems, 0.f);
152
153 const Channel *X, *Y, *Z;
154
155 for (size_t j = 0; j < height; j++) {
156 for (size_t i = 0; i < width; i++) {
157 for (size_t w = 0; w < numItems; w++) {
158 data[w].frame()->getXYZChannels(X, Y, Z);
159
160 r = (*X)(i, j);
161 g = (*Y)(i, j);
162 b = (*Z)(i, j);
163 rgb2hsl(r, g, b, h, s, l);
164 hues[w] = h;
165 }
166
167 float hueMean_ = hueMean(hues);
168
169 for (size_t w = 0; w < numItems; w++) {
170 float H = hueMean_ - hues[w];
171 HS[w] += H * H;
172 }
173 }
174 }
175
176 for (size_t w = 0; w < numItems; w++) {
177 HE[w] = HS[w] / (width * height);
178 }
179}
180
181void sdv(const HdrCreationItem &item1, const HdrCreationItem &item2,
182 const float deltaEV, const int dx, const int dy, float &sR, float &sG,

Callers 1

computePatchesMethod · 0.85

Calls 6

rgb2hslFunction · 0.85
hueMeanFunction · 0.85
getXYZChannelsMethod · 0.80
getWidthMethod · 0.45
getHeightMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected