Author: post
Date: 2010-05-27 14:36:49 +0200 (Thu, 27 May 2010)
New Revision: 238
Modified:
RawSpeed/RawImage.cpp
Log:
Use larger border when estimating black/white, and check result.
Modified: RawSpeed/RawImage.cpp
===================================================================
--- RawSpeed/RawImage.cpp 2010-05-27 11:41:20 UTC (rev 237)
+++ RawSpeed/RawImage.cpp 2010-05-27 12:36:49 UTC (rev 238)
@@ -117,13 +117,14 @@
}
void RawImageData::scaleBlackWhite() {
- int gw = (dim.x - 20) * cpp;
+ const int skipBorder = 100;
+ int gw = (dim.x - skipBorder*2) * cpp;
if (blackLevel < 0 || whitePoint == 65536) { // Estimate
int b = 65536;
int m = 0;
- for (int row = 10;row < (dim.y - 10);row++) {
- ushort16 *pixel = (ushort16*)getData(10, row);
- for (int col = 10 ; col < gw ; col++) {
+ for (int row = skipBorder;row < (dim.y - skipBorder);row++) {
+ ushort16 *pixel = (ushort16*)getData(skipBorder, row);
+ for (int col = skipBorder ; col < gw ; col++) {
b = MIN(*pixel, b);
m = MAX(*pixel, m);
pixel++;
@@ -135,6 +136,12 @@
whitePoint = m;
printf("Estimated black:%d, Estimated white: %d\n", blackLevel,
whitePoint);
}
+
+ if (whitePoint <= blackLevel) {
+ printf("WARNING: RawImageData::scaleBlackWhite - Unable to estimate
Black/White level, skipping scaling.\n");
+ return;
+ }
+
float f = 65535.0f / (float)(whitePoint - blackLevel);
scaleValues(f);
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit