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
|
// do not set the motion pixel values. They have already been set by demosaicer or showMotion
|
||||||
continue;
|
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) {
|
if(adaptive && checkNonGreenHorizontal) {
|
||||||
float ng1 = riFrames[(offset << 1) + offset]->data[i][j + offset];
|
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;
|
float blend = gridMax * blendFactor;
|
||||||
if(!showOnlyMask) {
|
if(!showOnlyMask) {
|
||||||
// if showMotion is enabled make the pixel green
|
// 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;
|
nonGreenDest1[j + offsX] = greenDest[j + offsX] = 0.f;
|
||||||
} else {
|
} 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;
|
continue;
|
||||||
@ -300,15 +301,16 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, bool det
|
|||||||
if(showMotion) {
|
if(showMotion) {
|
||||||
float blend = gridMax * blendFactor;
|
float blend = gridMax * blendFactor;
|
||||||
if(!showOnlyMask) {
|
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;
|
nonGreenDest0[j + offsX] = greenDest[j + offsX] = 0.f;
|
||||||
} else {
|
} 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;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// float ngDiff = nonGreenDiff(ng0,ng1,ng2);
|
// float ngDiff = nonGreenDiff(ng0,ng1,ng2);
|
||||||
// float korr = log2Lut[((int)(riFrames[(offset << 1) + offset]->data[i][j + offset] * scaleNonGreen0))>>1];
|
// float korr = log2Lut[((int)(riFrames[(offset << 1) + offset]->data[i][j + offset] * scaleNonGreen0))>>1];
|
||||||
// if(ngDiff > 0.5f - korr) {
|
// 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
|
// 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;
|
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];
|
nonGreenDest0[j + offsX] = riFrames[(offset << 1) + offset]->data[i][j + offset];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user