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_TWOGREEN;Link greens
|
||||
TP_RAW_1PASSMEDIUM;1-Pass (Medium)
|
||||
TP_RAW_2PASS;2-Pass
|
||||
TP_RAW_3PASSBEST;3-Pass (Best)
|
||||
TP_RAW_4PASS;4-Pass
|
||||
TP_RAW_AHD;AHD
|
||||
|
@ -51,7 +51,11 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const RAWParams &raw, int wi
|
||||
rcd_demosaic();
|
||||
}
|
||||
} else {
|
||||
xtrans_interpolate (3, true);
|
||||
if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) {
|
||||
xtrans_interpolate (3, true);
|
||||
} else {
|
||||
xtrans_interpolate (1, false);
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
@ -73,7 +77,11 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const RAWParams &raw, int wi
|
||||
rcd_demosaic();
|
||||
}
|
||||
} else {
|
||||
xtrans_interpolate (3, true);
|
||||
if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) {
|
||||
xtrans_interpolate (3, true);
|
||||
} else {
|
||||
xtrans_interpolate (1, false);
|
||||
}
|
||||
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 {
|
||||
"4-pass",
|
||||
"3-pass (best)",
|
||||
"2-pass",
|
||||
"1-pass (medium)",
|
||||
"fast",
|
||||
"mono",
|
||||
|
@ -1312,6 +1312,7 @@ struct RAWParams {
|
||||
enum class Method {
|
||||
FOUR_PASS,
|
||||
THREE_PASS,
|
||||
TWO_PASS,
|
||||
ONE_PASS,
|
||||
FAST,
|
||||
MONO,
|
||||
|
@ -2120,7 +2120,7 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c
|
||||
xtrans_interpolate(1, false);
|
||||
} else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS) ) {
|
||||
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) {
|
||||
double threshold = raw.xtranssensor.dualDemosaicContrast;
|
||||
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);
|
||||
ccSteps->setValue (pp->raw.xtranssensor.ccSteps);
|
||||
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);
|
||||
@ -192,7 +193,7 @@ void XTransProcess::methodChanged ()
|
||||
oldSelection = curSelection;
|
||||
|
||||
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();
|
||||
} else {
|
||||
dualDemosaicOptions->hide();
|
||||
|
Loading…
x
Reference in New Issue
Block a user