pixelshift: Correction for mask-only mode when red/blue detection is enabled
This commit is contained in:
parent
ac5bad2de1
commit
b9fb8cf292
@ -258,10 +258,11 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, bool det
|
||||
}
|
||||
// do not set the motion pixel values. They have already been set by demosaicer or showMotion
|
||||
continue;
|
||||
} else if(showMotion && showOnlyMask) {
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 0.f;
|
||||
continue;
|
||||
}
|
||||
// } else if(showMotion && showOnlyMask) {
|
||||
// greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 0.f;
|
||||
// continue;
|
||||
// }
|
||||
|
||||
if(adaptive && checkNonGreenHorizontal) {
|
||||
float ng1 = riFrames[(offset << 1) + offset]->data[i][j + offset];
|
||||
@ -278,10 +279,10 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, bool det
|
||||
float blend = gridMax * blendFactor;
|
||||
if(!showOnlyMask) {
|
||||
// if showMotion is enabled make the pixel green
|
||||
nonGreenDest0[j + offsX] = 1000.f + 25000.f;
|
||||
nonGreenDest0[j + offsX] = 1000.f + 25000.f * blend;
|
||||
nonGreenDest1[j + offsX] = greenDest[j + offsX] = 0.f;
|
||||
} else {
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 1000.f + 25000.f;
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 1000.f + 25000.f * blend;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
@ -300,15 +301,16 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, bool det
|
||||
if(showMotion) {
|
||||
float blend = gridMax * blendFactor;
|
||||
if(!showOnlyMask) {
|
||||
nonGreenDest1[j + offsX] = 1000.f + 25000.f;
|
||||
nonGreenDest1[j + offsX] = 1000.f + 25000.f * blend;
|
||||
nonGreenDest0[j + offsX] = greenDest[j + offsX] = 0.f;
|
||||
} else {
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 1000.f + 25000.f;
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 1000.f + 25000.f * blend;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// float ngDiff = nonGreenDiff(ng0,ng1,ng2);
|
||||
// float korr = log2Lut[((int)(riFrames[(offset << 1) + offset]->data[i][j + offset] * scaleNonGreen0))>>1];
|
||||
// if(ngDiff > 0.5f - korr) {
|
||||
@ -422,6 +424,12 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, bool det
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if(showMotion && showOnlyMask) {
|
||||
greenDest[j + offsX] = nonGreenDest0[j + offsX] = nonGreenDest1[j + offsX] = 0.f;
|
||||
continue;
|
||||
}
|
||||
|
||||
// motion correction disabled or no motion detected => combine the values from the four pixelshift frames
|
||||
greenDest[j + offsX] = (riFrames[1 - offset]->data[i - offset + 1][j] + riFrames[3 - offset]->data[i + offset][j + 1]) / 2.f;
|
||||
nonGreenDest0[j + offsX] = riFrames[(offset << 1) + offset]->data[i][j + offset];
|
||||
|
Loading…
x
Reference in New Issue
Block a user