pixelshift: changed formula for adaptive motion detection

This commit is contained in:
heckflosse
2016-11-22 16:35:11 +01:00
parent fb043e9f5d
commit 520557912b
3 changed files with 7 additions and 5 deletions

View File

@@ -1662,8 +1662,8 @@ TP_RAW_PIXELSHIFTMOTIONCORRECTION_TOOLTIP;1 = 2 pixels\n3 = 3x3 grid\n5 = 5x5 gr
TP_RAW_PIXELSHIFTSHOWMOTION;Show motion
TP_RAW_PIXELSHIFTSTDDEVFACTOR;StdDev factor
TP_RAW_PIXELSHIFTEPERISO;e per ISO
TP_RAW_PIXELSHIFTNREADISO;nRead per ISO
TP_RAW_PIXELSHIFTPRNU;PRNU
TP_RAW_PIXELSHIFTNREADISO;nRead
TP_RAW_PIXELSHIFTPRNU;PRNU (%)
TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix
TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.
TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix

View File

@@ -43,7 +43,8 @@ float greenDiff(float a, float b, bool adaptive, float scale, float stddevFactor
float diff = std::fabs(a - b) / (std::max(a, b) + 0.01f);
if(adaptive) {
float avg = (a+b)/2.f;
avg *= scale;
avg *= scale; // revert the colour scaling
prnu *= (avg * eperIso);
float stddev = sqrtf(avg * eperIso + nreadIso * nreadIso + prnu * prnu);
float korr = stddevFactor * stddev / (a * scale);
diff -= korr;
@@ -78,7 +79,8 @@ void RawImageSource::pixelshift_simple(int winx, int winy, int winw, int winh, b
// const float eperIso = 0.75f * idata->getISOSpeed() / 100;
eperIso *= (idata->getISOSpeed() / 100);
nreadIso *= (idata->getISOSpeed() / 100);
// nreadIso *= (idata->getISOSpeed() / 100);
prnu /= 100.f;
// const float nreadIso = 5.f * idata->getISOSpeed() / 100;
// const float prnu = 1.f;
// const float stddevFactor = 4.f;

View File

@@ -132,7 +132,7 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA
pixelShiftEperIso->show();
pixelShiftOptions->pack_start(*pixelShiftEperIso);
pixelShiftNreadIso = Gtk::manage (new Adjuster (M("TP_RAW_PIXELSHIFTNREADISO"), 1.0, 10.0, 0.5, 5.0));
pixelShiftNreadIso = Gtk::manage (new Adjuster (M("TP_RAW_PIXELSHIFTNREADISO"), 1.0, 10.0, 0.05, 3.45));
pixelShiftNreadIso->setAdjusterListener (this);
// pixelShiftStddevFactor->set_tooltip_markup (M("TP_RAW_PIXELSHIFTSTDDEVFACTOR_TOOLTIP"));