From ae67344f169b39d31232cdedaf5be3db102158a3 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Sun, 18 Jun 2017 15:22:49 +0200 Subject: [PATCH] Pixel Shift: intermediate steps for progress bar --- rtengine/pixelshift.cc | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/rtengine/pixelshift.cc b/rtengine/pixelshift.cc index 8499a314e..5a7e88f1c 100644 --- a/rtengine/pixelshift.cc +++ b/rtengine/pixelshift.cc @@ -369,12 +369,6 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA } } } - } else if(bayerParams.pixelShiftMotionCorrectionMethod != RAWParams::BayerSensor::Off) { - if(bayerParams.pixelShiftLmmse) { - lmmse_interpolate_omp(winw, winh, rawData, red, green, blue, bayerParams.lmmse_iterations); - } else { - amaze_demosaic_RT(winx, winy, winw, winh, rawData, red, green, blue); - } } const bool adaptive = bayerParams.pixelShiftAutomatic; @@ -647,6 +641,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA delete histoblue[i]; delete histogreen[i]; } + if(plistener) { + plistener->setProgress(0.15); + } + } else { for(int i = 0; i < 4; ++i) { redBrightness[i] = psRedBrightness[i]; @@ -654,11 +652,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA blueBrightness[i] = psBlueBrightness[i]; } } - } - - if(!equalChannel) { - for(int i = 0; i < 4; ++i) { - redBrightness[i] = blueBrightness[i] = greenBrightness[i]; + if(!equalChannel) { + for(int i = 0; i < 4; ++i) { + redBrightness[i] = blueBrightness[i] = greenBrightness[i]; + } } } @@ -699,6 +696,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA } } + if(plistener) { + plistener->setProgress(0.3); + } + // now that the temporary planes are filled for easy access we do the motion detection array2D psMask(winw, winh); @@ -776,6 +777,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA } } + if(plistener) { + plistener->setProgress(0.45); + } + if(blurMap) { #ifdef _OPENMP #pragma omp parallel @@ -783,6 +788,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA { gaussianBlur(psMask, psMask, winw, winh, sigma); } + if(plistener) { + plistener->setProgress(0.6); + } + } array2D mask(winw, winh, ARRAY2D_CLEAR_DATA); @@ -816,6 +825,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA } } + if(plistener) { + plistener->setProgress(0.75); + } + if(holeFill) { array2D maskInv(winw, winh); invertMask(winx + border - offsX, winw - (border + offsX), winy + border - offsY, winh - (border + offsY), mask, maskInv); @@ -823,6 +836,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA xorMasks(winx + border - offsX, winw - (border + offsX), winy + border - offsY, winh - (border + offsY), maskInv, mask); } + if(plistener) { + plistener->setProgress(0.9); + } + #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif