Green channel equilibration algorithm, for cameras such as Olympus, Panasonic, Canon 7D, etc that have different properties for the G1/G2 channels of the Bayer color filter array. In addition, minor changes to line denoise and CA_correct.

This commit is contained in:
Emil Martinec
2010-06-24 11:29:52 -05:00
parent 7367521feb
commit d6ae133924
11 changed files with 311 additions and 51 deletions

View File

@@ -124,7 +124,8 @@ void Options::setDefaults () {
rtSettings.hotdeadpix_filt = true;//Emil's hot/dead pixel filter
rtSettings.linenoise = 0;//Emil's line denoise
rtSettings.greenthresh = 0;//Emil's Green equilibration
rtSettings.colorCorrectionSteps = 0;
rtSettings.dcb_iterations = 2;
rtSettings.dcb_enhance = true;
@@ -269,6 +270,7 @@ if (keyFile.has_group ("Algorithms")) {
if(keyFile.has_key("Algorithms", "CACorrect")) rtSettings.ca_autocorrect = keyFile.get_boolean("Algorithms", "CACorrect");//Emil's CA autocorrect
if(keyFile.has_key("Algorithms", "HotDeadPixFilt")) rtSettings.hotdeadpix_filt = keyFile.get_boolean("Algorithms", "HotDeadPixFilt");//Emil's hot/dead pixel filter
if(keyFile.has_key("Algorithms", "LineDenoise")) rtSettings.linenoise = keyFile.get_integer("Algorithms", "LineDenoise");//Emil's line denoise
if(keyFile.has_key("Algorithms", "GreenEquil")) rtSettings.greenthresh = keyFile.get_integer("Algorithms", "GreenEquil");//Emil's Green equilibration
}
if (keyFile.has_group ("Crop Settings")) {
@@ -395,7 +397,8 @@ int Options::saveToFile (Glib::ustring fname) {
keyFile.set_boolean ("Algorithms", "CACorrect", rtSettings.ca_autocorrect);//Emil's CA correction
keyFile.set_boolean ("Algorithms", "HotDeadPixFilt", rtSettings.hotdeadpix_filt);//Emil's hot/dead pixel filter
keyFile.set_integer ("Algorithms", "LineDenoise", rtSettings.linenoise);//Emil's line denoise
keyFile.set_integer ("Algorithms", "GreenEquil", rtSettings.greenthresh);//Emil's Green equilibration
keyFile.set_integer ("Crop Settings", "DPI", cropDPI);
keyFile.set_string ("Color Management", "ICCDirectory", rtSettings.iccDirectory);

View File

@@ -302,6 +302,18 @@ Gtk::Widget* Preferences::getProcParamsPanel () {
hb14->pack_start (*LineDenoise);
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//Emil's Green equilibration
GreenEquilLabel = Gtk::manage(new Gtk::Label(M("PREFERENCES_GREENEQUIL")+":"));
GreenEquil = Gtk::manage(new Gtk::SpinButton ());
GreenEquil->set_digits(0);
GreenEquil->set_increments(1, 10);
GreenEquil->set_range(0, 100);
Gtk::HBox* hb15 = Gtk::manage(new Gtk::HBox());
hb15->pack_start (*GreenEquilLabel, Gtk::PACK_SHRINK, 4);
hb15->pack_start (*GreenEquil);
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fdb->pack_start (*hb11, Gtk::PACK_SHRINK, 4);
fdb->pack_start (*hb12, Gtk::PACK_SHRINK, 4);
fdb->pack_start (*hb13, Gtk::PACK_SHRINK, 4);
@@ -309,6 +321,7 @@ Gtk::Widget* Preferences::getProcParamsPanel () {
fdb->pack_start (*caAutoCorrect, Gtk::PACK_SHRINK, 4);//Emil's CA correction
fdb->pack_start (*HotDeadPixFilt, Gtk::PACK_SHRINK, 4);//Emil's hot/dead pixel filter
fdb->pack_start (*hb14, Gtk::PACK_SHRINK, 4);//Emil's line denoise
fdb->pack_start (*hb15, Gtk::PACK_SHRINK, 4);//Emil's Green equlibration
mvbpp->pack_start (*fdem, Gtk::PACK_SHRINK, 4);
mvbpp->set_border_width (4);
@@ -740,6 +753,7 @@ void Preferences::storePreferences () {
moptions.rtSettings.ca_autocorrect=caAutoCorrect->get_active();//Emil's CA correction
moptions.rtSettings.hotdeadpix_filt=HotDeadPixFilt->get_active();//Emil's hot/dead pixel filter
moptions.rtSettings.linenoise=(int)LineDenoise->get_value();//Emil's line denoise
moptions.rtSettings.greenthresh=(int)GreenEquil->get_value();//Emil's Green equilibration
if (sdcurrent->get_active ())
@@ -842,6 +856,7 @@ void Preferences::fillPreferences () {
caAutoCorrect->set_active(moptions.rtSettings.ca_autocorrect);//Emil's CA Auto Correction
HotDeadPixFilt->set_active(moptions.rtSettings.hotdeadpix_filt);//Emil's hot/dead pixel filter
LineDenoise->set_value(moptions.rtSettings.linenoise);//Emil's line denoise
GreenEquil->set_value(moptions.rtSettings.greenthresh);//Emil's Green equilibration

View File

@@ -79,6 +79,8 @@ class Preferences : public Gtk::Dialog {
Gtk::CheckButton* HotDeadPixFilt;//Emil's hot/dead pixel filter
Gtk::Label* LineDenoiseLabel;//Emil's line denoise
Gtk::SpinButton* LineDenoise;
Gtk::Label* GreenEquilLabel;//Emil's Green equilibration
Gtk::SpinButton* GreenEquil;
Gtk::FileChooserButton* iccDir;
Gtk::FileChooserButton* monProfile;