From 198989d5983beccc58da4ae4924149130898dcac Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 7 Sep 2018 13:50:42 +0200 Subject: [PATCH] raw ca correction/avoid colour shift: fix colour cast when (height % 2) == 1, #4777 --- rtengine/CA_correct_RT.cc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index 7abd9bfcc..3d5f806de 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -1274,6 +1274,20 @@ float* RawImageSource::CA_correct_RT( } } + #pragma omp single + { + if (H % 2) { + int firstCol = FC(H - 1, 0) & 1; + int colour = FC(H - 1, firstCol); + nonGreen = colour == 0 ? &redFactor : &blueFactor; + for (int j = 0; j < (W + 1) / 2; ++j) { + (*nonGreen)[(H + 1) / 2 - 1][j] = (*nonGreen)[(H + 1) / 2 - 2][j]; + } + } + } + + #pragma omp barrier + gaussianBlur(redFactor, redFactor, (W+1)/2, (H+1)/2, 30.0); gaussianBlur(blueFactor, blueFactor, (W+1)/2, (H+1)/2, 30.0);