@@ -122,8 +122,8 @@ void RawImageDataFloat::scaleBlackWhite() {
122
122
123
123
const int skipBorder = 150 ;
124
124
int gw = (dim.x - skipBorder) * cpp;
125
- if ((blackAreas. empty () && !blackLevelSeparate && blackLevel < 0 ) ||
126
- !whitePoint ) { // Estimate
125
+ // NOTE: lack of whitePoint means that it is pre-normalized.
126
+ if (blackAreas. empty () && !blackLevelSeparate && blackLevel < 0 ) { // Estimate
127
127
float b = 100000000 ;
128
128
float m = -10000000 ;
129
129
for (int row = skipBorder * cpp; row < (dim.y - skipBorder); row++) {
@@ -135,10 +135,7 @@ void RawImageDataFloat::scaleBlackWhite() {
135
135
}
136
136
if (blackLevel < 0 )
137
137
blackLevel = static_cast <int >(b);
138
- if (!whitePoint)
139
- whitePoint = static_cast <int >(m);
140
- writeLog (DEBUG_PRIO::INFO, " Estimated black:%d, Estimated white: %d" ,
141
- blackLevel, *whitePoint);
138
+ writeLog (DEBUG_PRIO::INFO, " Estimated black:%d" , blackLevel);
142
139
}
143
140
144
141
/* If filter has not set separate blacklevel, compute or fetch it */
@@ -161,8 +158,8 @@ void RawImageDataFloat::scaleValues(int start_y, int end_y) {
161
158
v ^= 1 ;
162
159
if ((mOffset .y & 1 ) != 0 )
163
160
v ^= 2 ;
164
- mul[i] =
165
- 65535 . 0F / static_cast < float >(*whitePoint - blackLevelSeparate1D (v));
161
+ mul[i] = 65535 . 0F / static_cast < float >(whitePoint. value_or ( 1 . 0F ) -
162
+ blackLevelSeparate1D (v));
166
163
sub[i] = static_cast <float >(blackLevelSeparate1D (v));
167
164
}
168
165
for (int y = start_y; y < end_y; y++) {
0 commit comments