Pixel Shift: intermediate steps for progress bar

This commit is contained in:
heckflosse 2017-06-18 15:22:49 +02:00
parent 480d13196e
commit ae67344f16

View File

@ -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<float> 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<uint8_t> 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<uint8_t> 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