mirror of
https://github.com/opencv/opencv.git
synced 2026-11-09 18:04:29 -06:00
Compare commits
2 Commits
bb8cbcdb0b
...
ac33ba8f18
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac33ba8f18 | ||
|
|
5d1f514835 |
@@ -233,7 +233,7 @@ public:
|
||||
|
||||
float key = (log_max - log_mean) / (log_max - log_min);
|
||||
float map_key = 0.3f + 0.7f * std::pow(key, 1.4f);
|
||||
intensity = exp(-intensity);
|
||||
const float intensity_scale = exp(-intensity);
|
||||
Scalar chan_mean = mean(img);
|
||||
float gray_mean = static_cast<float>(mean(gray_img)[0]);
|
||||
|
||||
@@ -244,7 +244,7 @@ public:
|
||||
float global = color_adapt * static_cast<float>(chan_mean[i]) + (1.0f - color_adapt) * gray_mean;
|
||||
Mat adapt = color_adapt * channels[i] + (1.0f - color_adapt) * gray_img;
|
||||
adapt = light_adapt * adapt + (1.0f - light_adapt) * global;
|
||||
pow(intensity * adapt, map_key, adapt);
|
||||
pow(intensity_scale * adapt, map_key, adapt);
|
||||
channels[i] = channels[i].mul(1.0f / (adapt + channels[i]));
|
||||
}
|
||||
gray_img.release();
|
||||
|
||||
@@ -118,6 +118,27 @@ TEST(Photo_Tonemap, regression)
|
||||
checkEqual(result, expected, 3, "Mantiuk");
|
||||
}
|
||||
|
||||
TEST(Photo_Tonemap, reinhard_preserves_intensity)
|
||||
{
|
||||
string test_path = string(cvtest::TS::ptr()->get_data_path()) + "hdr/tonemap/";
|
||||
|
||||
Mat img, first, second;
|
||||
loadImage(test_path + "image.hdr", img);
|
||||
Mat original = img.clone();
|
||||
|
||||
Ptr<TonemapReinhard> tonemap = createTonemapReinhard(1.0f, 0.0f, 1.0f, 0.0f);
|
||||
EXPECT_FLOAT_EQ(0.0f, tonemap->getIntensity());
|
||||
|
||||
tonemap->process(img, first);
|
||||
EXPECT_FLOAT_EQ(0.0f, tonemap->getIntensity());
|
||||
|
||||
tonemap->process(img, second);
|
||||
EXPECT_FLOAT_EQ(0.0f, tonemap->getIntensity());
|
||||
|
||||
checkEqual(first, second, 0, "Reinhard repeated process");
|
||||
checkEqual(img, original, 0, "Reinhard input preservation");
|
||||
}
|
||||
|
||||
TEST(Photo_AlignMTB, regression)
|
||||
{
|
||||
const int TESTS_COUNT = 100;
|
||||
|
||||
Reference in New Issue
Block a user