Commiting HSV equalizer tool.

This commit is contained in:
Emil Martinec
2010-11-11 14:33:26 -06:00
parent 06875fede4
commit 1a2e7a9b4a
20 changed files with 690 additions and 43 deletions

View File

@@ -187,6 +187,13 @@ void ProcParams::setDefaults () {
dirpyrequalizer.mult[i] = 1.0;
}
dirpyrequalizer.mult[4] = 0.0;
hsvequalizer.enabled = false;
for(int i = 0; i < 8; i ++)
{
hsvequalizer.sat[i] = 0;
hsvequalizer.val[i] = 0;
hsvequalizer.hue[i] = 0;
}
raw.df_autoselect = false;
raw.ca_autocorrect = false;
raw.hotdeadpix_filt = false;
@@ -380,6 +387,28 @@ int ProcParams::save (Glib::ustring fname) const {
ss << "Mult" << i;
keyFile.set_double("Directional Pyramid Equalizer", ss.str(), dirpyrequalizer.mult[i]);
}
// save hsv equalizer parameters
keyFile.set_boolean ("HSV Equalizer", "Enabled", hsvequalizer.enabled);
keyFile.set_string ("HSV Equalizer", "Channel", hsvequalizer.hsvchannel);
for(int i = 0; i < 8; i++)
{
std::stringstream ss;
ss << "Sat" << i;
keyFile.set_double("HSV Equalizer", ss.str(), hsvequalizer.sat[i]);
}
for(int i = 0; i < 8; i++)
{
std::stringstream ss;
ss << "Val" << i;
keyFile.set_double("HSV Equalizer", ss.str(), hsvequalizer.val[i]);
}
for(int i = 0; i < 8; i++)
{
std::stringstream ss;
ss << "Hue" << i;
keyFile.set_double("HSV Equalizer", ss.str(), hsvequalizer.hue[i]);
}
// save RAW parameters
keyFile.set_string ("RAW", "DarkFrame", raw.dark_frame );
@@ -663,6 +692,29 @@ if (keyFile.has_group ("Directional Pyramid Equalizer")) {
if(keyFile.has_key ("Directional Pyramid Equalizer", ss.str())) dirpyrequalizer.mult[i] = keyFile.get_double ("Directional Pyramid Equalizer", ss.str());
}
}
// load wavelet equalizer parameters
if (keyFile.has_group ("HSV Equalizer")) {
if (keyFile.has_key ("HSV Equalizer", "Enabled")) hsvequalizer.enabled = keyFile.get_boolean ("HSV Equalizer", "Enabled");
for(int i = 0; i < 8; i ++)
{
std::stringstream ss;
ss << "Sat" << i;
if(keyFile.has_key ("HSV Equalizer", ss.str())) hsvequalizer.sat[i] = keyFile.get_double ("HSV Equalizer", ss.str());
}
for(int i = 0; i < 8; i ++)
{
std::stringstream ss;
ss << "Val" << i;
if(keyFile.has_key ("HSV Equalizer", ss.str())) hsvequalizer.val[i] = keyFile.get_double ("HSV Equalizer", ss.str());
}
for(int i = 0; i < 8; i ++)
{
std::stringstream ss;
ss << "Hue" << i;
if(keyFile.has_key ("HSV Equalizer", ss.str())) hsvequalizer.hue[i] = keyFile.get_double ("HSV Equalizer", ss.str());
}
}
// load raw settings
if (keyFile.has_group ("RAW")) {
@@ -733,6 +785,17 @@ bool operator==(const DirPyrEqualizerParams & a, const DirPyrEqualizerParams & b
return true;
}
bool operator==(const HSVEqualizerParams & a, const HSVEqualizerParams & b) {
if(a.enabled != b.enabled)
return false;
for(int i = 0; i < 8; i++) {
if(a.sat[i] != b.sat[i] && a.val[i] != b.val[i] && a.hue[i] != b.hue[i])
return false;
}
return true;
}
bool operator==(const ExifPair& a, const ExifPair& b) {
return a.field == b.field && a.value == b.value;
@@ -856,6 +919,7 @@ bool ProcParams::operator== (const ProcParams& other) {
&& icm.output == other.icm.output
&& equalizer == other.equalizer
&& dirpyrequalizer == other.dirpyrequalizer
&& hsvequalizer == other.hsvequalizer
&& exif==other.exif
&& iptc==other.iptc;
}