Dual demosaic: added xtrans 2-pass (combination of xtrans 1-pass and xtrans fast)
This commit is contained in:
parent
7397f8494f
commit
60f94e29a7
@ -1763,6 +1763,7 @@ TP_RAWEXPOS_PRESER;Highlight preservation
|
|||||||
TP_RAWEXPOS_RGB;Red, Green, Blue
|
TP_RAWEXPOS_RGB;Red, Green, Blue
|
||||||
TP_RAWEXPOS_TWOGREEN;Link greens
|
TP_RAWEXPOS_TWOGREEN;Link greens
|
||||||
TP_RAW_1PASSMEDIUM;1-Pass (Medium)
|
TP_RAW_1PASSMEDIUM;1-Pass (Medium)
|
||||||
|
TP_RAW_2PASS;2-Pass
|
||||||
TP_RAW_3PASSBEST;3-Pass (Best)
|
TP_RAW_3PASSBEST;3-Pass (Best)
|
||||||
TP_RAW_4PASS;4-Pass
|
TP_RAW_4PASS;4-Pass
|
||||||
TP_RAW_AHD;AHD
|
TP_RAW_AHD;AHD
|
||||||
|
@ -51,7 +51,11 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const RAWParams &raw, int wi
|
|||||||
rcd_demosaic();
|
rcd_demosaic();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) {
|
||||||
xtrans_interpolate (3, true);
|
xtrans_interpolate (3, true);
|
||||||
|
} else {
|
||||||
|
xtrans_interpolate (1, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@ -73,7 +77,11 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const RAWParams &raw, int wi
|
|||||||
rcd_demosaic();
|
rcd_demosaic();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) {
|
||||||
xtrans_interpolate (3, true);
|
xtrans_interpolate (3, true);
|
||||||
|
} else {
|
||||||
|
xtrans_interpolate (1, false);
|
||||||
|
}
|
||||||
fast_xtrans_interpolate(rawData, redTmp, greenTmp, blueTmp);
|
fast_xtrans_interpolate(rawData, redTmp, greenTmp, blueTmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2509,6 +2509,7 @@ const std::vector<const char*>& RAWParams::XTransSensor::getMethodStrings()
|
|||||||
static const std::vector<const char*> method_strings {
|
static const std::vector<const char*> method_strings {
|
||||||
"4-pass",
|
"4-pass",
|
||||||
"3-pass (best)",
|
"3-pass (best)",
|
||||||
|
"2-pass",
|
||||||
"1-pass (medium)",
|
"1-pass (medium)",
|
||||||
"fast",
|
"fast",
|
||||||
"mono",
|
"mono",
|
||||||
|
@ -1312,6 +1312,7 @@ struct RAWParams {
|
|||||||
enum class Method {
|
enum class Method {
|
||||||
FOUR_PASS,
|
FOUR_PASS,
|
||||||
THREE_PASS,
|
THREE_PASS,
|
||||||
|
TWO_PASS,
|
||||||
ONE_PASS,
|
ONE_PASS,
|
||||||
FAST,
|
FAST,
|
||||||
MONO,
|
MONO,
|
||||||
|
@ -2120,7 +2120,7 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c
|
|||||||
xtrans_interpolate(1, false);
|
xtrans_interpolate(1, false);
|
||||||
} else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS) ) {
|
} else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS) ) {
|
||||||
xtrans_interpolate(3, true);
|
xtrans_interpolate(3, true);
|
||||||
} else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS)) {
|
} else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) || raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::TWO_PASS)) {
|
||||||
if (!autoContrast) {
|
if (!autoContrast) {
|
||||||
double threshold = raw.xtranssensor.dualDemosaicContrast;
|
double threshold = raw.xtranssensor.dualDemosaicContrast;
|
||||||
dual_demosaic_RT (false, raw, W, H, rawData, red, green, blue, threshold, false);
|
dual_demosaic_RT (false, raw, W, H, rawData, red, green, blue, threshold, false);
|
||||||
|
@ -118,7 +118,8 @@ void XTransProcess::read(const rtengine::procparams::ProcParams* pp, const Param
|
|||||||
dualDemosaicContrast->setValue (pp->raw.xtranssensor.dualDemosaicContrast);
|
dualDemosaicContrast->setValue (pp->raw.xtranssensor.dualDemosaicContrast);
|
||||||
ccSteps->setValue (pp->raw.xtranssensor.ccSteps);
|
ccSteps->setValue (pp->raw.xtranssensor.ccSteps);
|
||||||
if (!batchMode) {
|
if (!batchMode) {
|
||||||
dualDemosaicOptions->set_visible(pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::FOUR_PASS));
|
dualDemosaicOptions->set_visible(pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::FOUR_PASS)
|
||||||
|
|| pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::TWO_PASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
methodconn.block (false);
|
methodconn.block (false);
|
||||||
@ -192,7 +193,7 @@ void XTransProcess::methodChanged ()
|
|||||||
oldSelection = curSelection;
|
oldSelection = curSelection;
|
||||||
|
|
||||||
if (!batchMode) {
|
if (!batchMode) {
|
||||||
if (currentMethod == procparams::RAWParams::XTransSensor::Method::FOUR_PASS) {
|
if (currentMethod == procparams::RAWParams::XTransSensor::Method::FOUR_PASS || currentMethod == procparams::RAWParams::XTransSensor::Method::TWO_PASS) {
|
||||||
dualDemosaicOptions->show();
|
dualDemosaicOptions->show();
|
||||||
} else {
|
} else {
|
||||||
dualDemosaicOptions->hide();
|
dualDemosaicOptions->hide();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user