Am Donnerstag, 28. April 2016 19:59:12 UTC+2 schrieb Niklas Mischkulnig:
>
> Hi Thomas,
>
> nope, that doesn't change anything.
> But I found out, that it works in the non-OpenGL preview window (see
> screenshot)
>
That's a good news. That means that at least the internal profile is okay.
I have attached 2 variants for testing. Both are using different
approaches. Hopefully one is working now.
Thomas
--
A list of frequently asked questions is available at:
http://wiki.panotools.org/Hugin_FAQ
---
You received this message because you are subscribed to the Google Groups
"hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/hugin-ptx/fb87a7eb-10e8-4fd8-9d45-96740784da5a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/hugin1/hugin/TextureManager.cpp b/src/hugin1/hugin/TextureManager.cpp
--- a/src/hugin1/hugin/TextureManager.cpp
+++ b/src/hugin1/hugin/TextureManager.cpp
@@ -938,7 +938,7 @@
// now take color profiles in file and of monitor into account
if (transform != NULL)
{
- cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+ cmsDoTransform(transform, out_img.rowBegin(y), out_img.rowBegin(y), out_img.width());
};
}
}
@@ -950,7 +950,7 @@
#pragma omp parallel for
for (int y = 0; y < ho; y++)
{
- cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+ cmsDoTransform(transform, out_img.rowBegin(y), out_img.rowBegin(y), out_img.width());
};
};
};
diff --git a/src/hugin1/hugin/TextureManager.cpp b/src/hugin1/hugin/TextureManager.cpp
--- a/src/hugin1/hugin/TextureManager.cpp
+++ b/src/hugin1/hugin/TextureManager.cpp
@@ -934,12 +934,19 @@
sy = (double)y * scale_y;
out_img[y][x] = invResponse(out_img[y][x],
hugin_utils::FDiff2D(sx, sy));
+ if (transform != NULL)
+ {
+ vigra::UInt8 rgb[3];
+ rgb[0] = out_img[y][x].red();
+ rgb[1] = out_img[y][x].green();
+ rgb[2] = out_img[y][x].blue();
+ cmsDoTransform(transform, &rgb, &rgb, 1);
+ out_img[y][x] = vigra::RGBValue<vigra::UInt8>(rgb[0], rgb[1], rgb[2]);
+ }
+ else
+ {
+ };
}
- // now take color profiles in file and of monitor into account
- if (transform != NULL)
- {
- cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
- };
}
}
else
@@ -950,7 +957,15 @@
#pragma omp parallel for
for (int y = 0; y < ho; y++)
{
- cmsDoTransform(transform, out_img[y], out_img[y], out_img.width());
+ for (int x = 0; x < wo; x++)
+ {
+ vigra::UInt8 rgb[3];
+ rgb[0] = out_img[y][x].red();
+ rgb[1] = out_img[y][x].green();
+ rgb[2] = out_img[y][x].blue();
+ cmsDoTransform(transform, &rgb, &rgb, 1);
+ out_img[y][x] = vigra::RGBValue<vigra::UInt8>(rgb[0], rgb[1], rgb[2]);
+ };
};
};
};