Itcwb - Use standard observer 10 by default - create option itcwb_stdobserver10
This commit is contained in:
parent
97b8918d5c
commit
8a972bef9e
@ -33,7 +33,7 @@
|
|||||||
namespace rtengine
|
namespace rtengine
|
||||||
{
|
{
|
||||||
|
|
||||||
static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 2° Standard Observer.
|
static const double cie_colour_match_jd2[97][3] = {//350nm to 830nm 5 nm J.Desmis 2° Standard Observer.
|
||||||
{0.0000000, 0.000000, 0.000000}, {0.0000000, 0.000000, 0.000000}, {0.0001299, 0.0003917, 0.0006061},
|
{0.0000000, 0.000000, 0.000000}, {0.0000000, 0.000000, 0.000000}, {0.0001299, 0.0003917, 0.0006061},
|
||||||
{0.0002321, 0.000006965, 0.001086}, {0.0004149, 0.00001239, 0.001946}, {0.0007416, 0.00002202, 0.003846},
|
{0.0002321, 0.000006965, 0.001086}, {0.0004149, 0.00001239, 0.001946}, {0.0007416, 0.00002202, 0.003846},
|
||||||
{0.001368, 0.000039, 0.006450001}, {0.002236, 0.000064, 0.01054999}, {0.004243, 0.000120, 0.02005001},
|
{0.001368, 0.000039, 0.006450001}, {0.002236, 0.000064, 0.01054999}, {0.004243, 0.000120, 0.02005001},
|
||||||
@ -70,7 +70,7 @@ static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desm
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const double cie_colour_match_jd10[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer.
|
static double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer.
|
||||||
{0.000000000000, 0.000000000000, 0.000000000000},
|
{0.000000000000, 0.000000000000, 0.000000000000},
|
||||||
{0.000000000000, 0.000000000000, 0.000000000000},
|
{0.000000000000, 0.000000000000, 0.000000000000},
|
||||||
{0.000000122200, 0.000000013398, 0.000000535027},
|
{0.000000122200, 0.000000013398, 0.000000535027},
|
||||||
@ -169,6 +169,8 @@ static const double cie_colour_match_jd10[97][3] = {//350nm to 830nm 5 nm J.De
|
|||||||
{0.000001553140, 0.000000629700, 0.000000000000}
|
{0.000001553140, 0.000000629700, 0.000000000000}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ColorTemp::ColorTemp (double t, double g, double e, const std::string &m) : temp(t), green(g), equal(e), method(m)
|
ColorTemp::ColorTemp (double t, double g, double e, const std::string &m) : temp(t), green(g), equal(e), method(m)
|
||||||
{
|
{
|
||||||
clip (temp, green, equal);
|
clip (temp, green, equal);
|
||||||
@ -3757,6 +3759,22 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float
|
|||||||
Refxyz[i].Zref = 0.f;
|
Refxyz[i].Zref = 0.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settings->verbose) {
|
||||||
|
if (settings->itcwb_stdobserver10 == false) {
|
||||||
|
printf("Use standard observer 2°\n");
|
||||||
|
} else {
|
||||||
|
printf("Use standard observer 10°\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings->itcwb_stdobserver10 == false) {
|
||||||
|
for (int i = 0; i < 97; i++) {
|
||||||
|
cie_colour_match_jd[i][0] = cie_colour_match_jd2[i][0];
|
||||||
|
cie_colour_match_jd[i][1] = cie_colour_match_jd2[i][1];;
|
||||||
|
cie_colour_match_jd[i][2] = cie_colour_match_jd2[i][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (separated) {
|
if (separated) {
|
||||||
const double tempw = Txyz[repref].Tem;
|
const double tempw = Txyz[repref].Tem;
|
||||||
|
|
||||||
|
@ -4459,7 +4459,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double
|
|||||||
You can used it in images :flowers, landscape, portrait, skin, where illuminants are "normal" (daylight, blackbody)
|
You can used it in images :flowers, landscape, portrait, skin, where illuminants are "normal" (daylight, blackbody)
|
||||||
You must avoid when illuminant is non standard (fluorescent, LED...) and also, when the subject is lost in the image (some target to generate profiles).
|
You must avoid when illuminant is non standard (fluorescent, LED...) and also, when the subject is lost in the image (some target to generate profiles).
|
||||||
|
|
||||||
You can change 4 parameters in option.cc
|
You can change parameters in option.cc
|
||||||
Itcwb_thres : 34 by default ==> number of color used in final algorithm - between 10 and max 55
|
Itcwb_thres : 34 by default ==> number of color used in final algorithm - between 10 and max 55
|
||||||
Itcwb_sort : false by default, can improve algorithm if true, ==> sort value in something near chroma order, instead of histogram number
|
Itcwb_sort : false by default, can improve algorithm if true, ==> sort value in something near chroma order, instead of histogram number
|
||||||
Itcwb_greenrange : 0 amplitude of green variation - between 0 to 2
|
Itcwb_greenrange : 0 amplitude of green variation - between 0 to 2
|
||||||
@ -4467,6 +4467,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double
|
|||||||
Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when camera wbsettings are wrong) to all images
|
Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when camera wbsettings are wrong) to all images
|
||||||
Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color
|
Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color
|
||||||
itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good
|
itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good
|
||||||
|
itcwb_stdobserver10 : true by default - use standard observer 10°, false = standard observer 2°
|
||||||
*/
|
*/
|
||||||
// BENCHFUN
|
// BENCHFUN
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
|
||||||
* RawTherapee is distributed in the hope that it will be useful,
|
* RawTherapee is distributed in the hope that it will be useful,
|
||||||
|
itcw *
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
@ -88,6 +88,7 @@ public:
|
|||||||
bool itcwb_forceextra;
|
bool itcwb_forceextra;
|
||||||
int itcwb_sizereference;
|
int itcwb_sizereference;
|
||||||
int itcwb_delta;
|
int itcwb_delta;
|
||||||
|
bool itcwb_stdobserver10;
|
||||||
|
|
||||||
|
|
||||||
enum class ThumbnailInspectorMode {
|
enum class ThumbnailInspectorMode {
|
||||||
|
@ -597,7 +597,8 @@ void Options::setDefaults()
|
|||||||
rtSettings.itcwb_forceextra = true;
|
rtSettings.itcwb_forceextra = true;
|
||||||
rtSettings.itcwb_sizereference = 3;//between 1 and 5
|
rtSettings.itcwb_sizereference = 3;//between 1 and 5
|
||||||
rtSettings.itcwb_delta = 1;//between 0 and 5
|
rtSettings.itcwb_delta = 1;//between 0 and 5
|
||||||
|
rtSettings.itcwb_stdobserver10 = true;
|
||||||
|
|
||||||
rtSettings.protectred = 60;
|
rtSettings.protectred = 60;
|
||||||
rtSettings.protectredh = 0.3;
|
rtSettings.protectredh = 0.3;
|
||||||
rtSettings.CRI_color = 0;
|
rtSettings.CRI_color = 0;
|
||||||
@ -1513,6 +1514,10 @@ void Options::readFromFile(Glib::ustring fname)
|
|||||||
rtSettings.itcwb_forceextra = keyFile.get_boolean("Color Management", "Itcwb_forceextra");
|
rtSettings.itcwb_forceextra = keyFile.get_boolean("Color Management", "Itcwb_forceextra");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (keyFile.has_key("Color Management", "Itcwb_stdobserver10")) {
|
||||||
|
rtSettings.itcwb_stdobserver10 = keyFile.get_boolean("Color Management", "Itcwb_stdobserver10");
|
||||||
|
}
|
||||||
|
|
||||||
if (keyFile.has_key("Color Management", "Itcwb_greenrange")) {
|
if (keyFile.has_key("Color Management", "Itcwb_greenrange")) {
|
||||||
rtSettings.itcwb_greenrange = keyFile.get_integer("Color Management", "Itcwb_greenrange");
|
rtSettings.itcwb_greenrange = keyFile.get_integer("Color Management", "Itcwb_greenrange");
|
||||||
}
|
}
|
||||||
@ -2201,6 +2206,7 @@ void Options::saveToFile(Glib::ustring fname)
|
|||||||
keyFile.set_boolean("Color Management", "Itcwb_forceextra", rtSettings.itcwb_forceextra);
|
keyFile.set_boolean("Color Management", "Itcwb_forceextra", rtSettings.itcwb_forceextra);
|
||||||
keyFile.set_integer("Color Management", "Itcwb_sizereference", rtSettings.itcwb_sizereference);
|
keyFile.set_integer("Color Management", "Itcwb_sizereference", rtSettings.itcwb_sizereference);
|
||||||
keyFile.set_integer("Color Management", "Itcwb_delta", rtSettings.itcwb_delta);
|
keyFile.set_integer("Color Management", "Itcwb_delta", rtSettings.itcwb_delta);
|
||||||
|
keyFile.set_boolean("Color Management", "Itcwb_stdobserver10", rtSettings.itcwb_stdobserver10);
|
||||||
|
|
||||||
//keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab);
|
//keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab);
|
||||||
//keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction);
|
//keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user