CFA line denoise for removing pattern noise prior to demosaic. A dialog box is added to preferences to specify the amount of line denoising to be done. Eventually the choice of line denoise threshold should be stored with other processing settings in whatever sidecar file or cache specifies such things.
In addition, there are some improvements to AMaZE for better diagonal interpolation.
This commit is contained in:
@@ -288,12 +288,28 @@ Gtk::Widget* Preferences::getProcParamsPanel () {
|
||||
dcbEnhance = Gtk::manage(new Gtk::CheckButton((M("PREFERENCES_DCBENHANCE"))));
|
||||
|
||||
caAutoCorrect = Gtk::manage(new Gtk::CheckButton((M("PREFERENCES_CACORRECTION"))));//Emil's CA correction
|
||||
|
||||
HotDeadPixFilt = Gtk::manage(new Gtk::CheckButton((M("PREFERENCES_HOTDEADPIXFILT"))));//Emil's hot/dead pixel filter
|
||||
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//Emil's line denoise
|
||||
LineDenoiseLabel = Gtk::manage(new Gtk::Label(M("PREFERENCES_LINEDENOISE")+":"));
|
||||
LineDenoise = Gtk::manage(new Gtk::SpinButton ());
|
||||
LineDenoise->set_digits(0);
|
||||
LineDenoise->set_increments(1, 10);
|
||||
LineDenoise->set_range(0, 1000);
|
||||
Gtk::HBox* hb14 = Gtk::manage(new Gtk::HBox());
|
||||
hb14->pack_start (*LineDenoiseLabel, Gtk::PACK_SHRINK, 4);
|
||||
hb14->pack_start (*LineDenoise);
|
||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
fdb->pack_start (*hb11, Gtk::PACK_SHRINK, 4);
|
||||
fdb->pack_start (*hb12, Gtk::PACK_SHRINK, 4);
|
||||
fdb->pack_start (*hb13, Gtk::PACK_SHRINK, 4);
|
||||
fdb->pack_start (*dcbEnhance, Gtk::PACK_SHRINK, 4);
|
||||
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
|
||||
|
||||
mvbpp->pack_start (*fdem, Gtk::PACK_SHRINK, 4);
|
||||
mvbpp->set_border_width (4);
|
||||
// drlab->set_size_request (drimg->get_width(), -1);
|
||||
@@ -722,6 +738,9 @@ void Preferences::storePreferences () {
|
||||
moptions.rtSettings.dcb_iterations=(int)dcbIterations->get_value();
|
||||
moptions.rtSettings.dcb_enhance=dcbEnhance->get_active();
|
||||
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
|
||||
|
||||
|
||||
if (sdcurrent->get_active ())
|
||||
moptions.startupDir = STARTUPDIR_CURRENT;
|
||||
@@ -821,6 +840,10 @@ void Preferences::fillPreferences () {
|
||||
dcbIterations->set_sensitive(moptions.rtSettings.demosaicMethod=="dcb");
|
||||
dcbIterationsLabel->set_sensitive(moptions.rtSettings.demosaicMethod=="dcb");
|
||||
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
|
||||
|
||||
|
||||
|
||||
if (moptions.startupDir==STARTUPDIR_CURRENT)
|
||||
sdcurrent->set_active ();
|
||||
|
Reference in New Issue
Block a user