Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv15150
Modified Files:
configure.ac ufraw.h ufraw_conf.c ufraw_preview.c
ufraw_ufraw.c ufraw_ui.h
Log Message:
Disable despeckle until the interface has been fixed for 4-color cameras. It
can be enabled by the --enable-despeckle configuration option.
Index: ufraw_preview.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v
retrieving revision 1.348
retrieving revision 1.349
diff -u -d -r1.348 -r1.349
--- ufraw_preview.c 16 Mar 2010 21:36:50 -0000 1.348
+++ ufraw_preview.c 30 Mar 2010 02:45:24 -0000 1.349
@@ -580,6 +580,7 @@
guint8 *p8 = pixies + yy*rowstride;
memcpy(p8, displayPixies + yy*displayImage->rowstride,
width*displayImage->depth);
+#ifdef UFRAW_DESPECKLE
if (data->ChannelSelect >= 0) {
guint8 *p = p8;
for (xx = 0; xx < width; xx++, p += 3) {
@@ -587,6 +588,7 @@
p[0] = p[1] = p[2] = px;
}
}
+#endif
guint8 *p8working = workingPixies + yy*workingImage->rowstride;
for (xx=x; xx<x+width; xx++, p8+=3, p8working+=workingImage->depth) {
if ( data->SpotDraw &&
@@ -1471,7 +1473,9 @@
}
static void update_shrink_ranges(preview_data *data);
+#ifdef UFRAW_DESPECKLE
static void despeckle_update_sensitive(preview_data *data);
+#endif
/* update the UI entries that could have changed automatically */
static void update_scales(preview_data *data)
@@ -1540,6 +1544,7 @@
for (i = 0; i < 3; ++i)
gtk_adjustment_set_value(data->GrayscaleMixers[i],
CFG->grayscaleMixer[i]);
+#ifdef UFRAW_DESPECKLE
for (i = 0; i < 3; ++i) {
gtk_adjustment_set_value(data->DespeckleWindowAdj[i],
CFG->despeckleWindow[i]);
@@ -1548,6 +1553,7 @@
gtk_adjustment_set_value(data->DespecklePassesAdj[i],
CFG->despecklePasses[i]);
}
+#endif
for (i = 0; i < CFG->lightnessAdjustmentCount; ++i) {
gtk_adjustment_set_value(data->LightnessAdjustment[i],
CFG->lightnessAdjustment[i].adjustment);
@@ -1560,7 +1566,9 @@
|| (CFG->grayscaleMixer[2] != conf_default.grayscaleMixer[2]));
gtk_widget_set_sensitive(GTK_WIDGET(data->GrayscaleMixerTable),
CFG->grayscaleMode == grayscale_mixer);
+#ifdef UFRAW_DESPECKLE
despeckle_update_sensitive(data);
+#endif
for (max = 1, i = 0; i < 3; ++i)
max = MAX(max, CFG->grayscaleMixer[i]);
@@ -2670,6 +2678,7 @@
CFG->grayscaleMixer[1] = conf_default.grayscaleMixer[1];
CFG->grayscaleMixer[2] = conf_default.grayscaleMixer[2];
}
+#ifdef UFRAW_DESPECKLE
if (button==data->ResetDespeckleButton) {
memcpy(CFG->despeckleWindow, conf_default.despeckleWindow,
sizeof (CFG->despeckleWindow));
@@ -2679,6 +2688,7 @@
sizeof (CFG->despecklePasses));
ufraw_invalidate_despeckle_layer(data->UF);
}
+#endif
for (i = 0; i < max_adjustments; ++i) {
if (button == data->ResetLightnessAdjustmentButton[i]) {
CFG->lightnessAdjustment[i].adjustment = 1.0;
@@ -2787,6 +2797,7 @@
ufraw_invalidate_layer(data->UF, ufraw_develop_phase);
update_scales(data);
}
+#ifdef UFRAW_DESPECKLE
} else if (valuep==(void*)data->ChannelSelectButton) {
if (data->ChannelSelect >= -1) {
int i, b = 0;
@@ -2806,6 +2817,7 @@
ufraw_invalidate_layer(data->UF, ufraw_develop_phase);
render_preview(data);
}
+#endif
} else {
*valuep = gtk_toggle_button_get_active(button);
if ( valuep==&CFG->overExp || valuep==&CFG->underExp ) {
@@ -2857,6 +2869,7 @@
}
}
+#ifdef UFRAW_DESPECKLE
static void despeckle_update_sensitive(preview_data *data)
{
conf_data *c = CFG;
@@ -2948,6 +2961,7 @@
}
return match ? TRUE : FALSE;
}
+#endif
static void adjustment_update(GtkAdjustment *adj, double *valuep)
{
@@ -2991,8 +3005,10 @@
ufraw_invalidate_denoise_layer(data->UF);
} else if (valuep==&CFG->hotpixel) {
ufraw_invalidate_hotpixel_layer(data->UF);
+#ifdef UFRAW_DESPECKLE
} else if (despeckle_adjustment_update(data, valuep)) {
return;
+#endif
} else {
if (CFG->autoExposure==enabled_state) CFG->autoExposure = apply_state;
if (CFG->autoBlack==enabled_state) CFG->autoBlack = apply_state;
@@ -4031,9 +4047,11 @@
preview_data *data = get_preview_data(notebook);
if (data->FreezeDialog==TRUE) return;
+#ifdef UFRAW_DESPECKLE
if (data->ChannelSelect >= 0)
gtk_toggle_button_set_active(
data->ChannelSelectButton[data->ChannelSelect], FALSE);
+#endif
GtkWidget *event_box =
gtk_widget_get_ancestor(data->PreviewWidget, GTK_TYPE_EVENT_BOX);
if ( page_num==data->PageNumSpot ||
@@ -4567,6 +4585,7 @@
/* End of Grayscale page */
}
+#ifdef UFRAW_DESPECKLE
static void denoise_fill_interface(preview_data *data, GtkWidget *page)
{
GtkWidget *button, *label, *icon;
@@ -4665,6 +4684,7 @@
gtk_table_attach(table, button, 6 + i, 6 + i + 1, 3, 4, GTK_FILL, 0, 0,
0);
}
}
+#endif
static void basecurve_fill_interface(preview_data *data, GtkWidget *page,
int curveeditorHeight)
@@ -5555,8 +5575,10 @@
data->PageNumGray = gtk_notebook_page_num(notebook, page);
grayscale_fill_interface(data, page);
+#ifdef UFRAW_DESPECKLE
// page = notebook_page_new(notebook, _("Denoising"), "denoise");
denoise_fill_interface(data, page);
+#endif
#ifdef HAVE_LENSFUN
/* Lens correction page */
Index: ufraw.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw.h,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -d -r1.156 -r1.157
--- ufraw.h 4 Mar 2010 05:08:21 -0000 1.156
+++ ufraw.h 30 Mar 2010 02:45:24 -0000 1.157
@@ -250,9 +250,11 @@
lightness_adjustment lightnessAdjustment[max_adjustments];
int grayscaleMode;
double grayscaleMixer[3];
+#ifdef UFRAW_DESPECKLE
double despeckleWindow[3];
double despeckleDecay[3];
double despecklePasses[3];
+#endif
/* SAVE options */
char inputFilename[max_path], outputFilename[max_path],
@@ -378,7 +380,9 @@
void ufraw_invalidate_hotpixel_layer(ufraw_data *uf);
void ufraw_invalidate_denoise_layer(ufraw_data *uf);
void ufraw_invalidate_darkframe_layer(ufraw_data *uf);
+#ifdef UFRAW_DESPECKLE
void ufraw_invalidate_despeckle_layer(ufraw_data *uf);
+#endif
void ufraw_invalidate_whitebalance_layer(ufraw_data *uf);
void ufraw_invalidate_smoothing_layer(ufraw_data *uf);
int ufraw_set_wb(ufraw_data *uf);
Index: configure.ac
===================================================================
RCS file: /cvsroot/ufraw/ufraw/configure.ac,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -d -r1.154 -r1.155
--- configure.ac 26 Mar 2010 18:45:06 -0000 1.154
+++ configure.ac 30 Mar 2010 02:45:24 -0000 1.155
@@ -339,6 +339,13 @@
enable_contrast=no)
AC_MSG_RESULT($enable_contrast)
+AC_MSG_CHECKING(whether to enable despeckle)
+AC_ARG_ENABLE(despeckle,
+ [ --enable-despeckle enable despeckle],
+ AC_DEFINE(UFRAW_DESPECKLE, 1, Despeckle enabled),
+ enable_despeckle=no)
+AC_MSG_RESULT($enable_despeckle)
+
AC_MSG_CHECKING(whether to enable 'None' interpolation)
AC_ARG_ENABLE(interp_none,
[ --enable-interp-none enable 'None' interpolation (mostly for
debugging)],
Index: ufraw_conf.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_conf.c,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -d -r1.167 -r1.168
--- ufraw_conf.c 4 Mar 2010 05:08:21 -0000 1.167
+++ ufraw_conf.c 30 Mar 2010 02:45:24 -0000 1.168
@@ -83,9 +83,11 @@
}, /* lightness adjustments */
grayscale_none, /* grayscale mode */
{ 1.0, 1.0, 1.0 }, /* grayscale mixer */
+#ifdef UFRAW_DESPECKLE
{ 0.0, 0.0, 0.0 }, /* despeckle window */
{ 0.0, 0.0, 0.0 }, /* despeckle color decay */
{ 1.0, 1.0, 1.0 }, /* despeckle passes */
+#endif
/* Save options */
"", "", "", /* inputFilename, outputFilename, outputPath */
"", "", /* inputURI, inputModTime */
@@ -686,6 +688,7 @@
sscanf(temp, "%lf %lf %lf", &c->grayscaleMixer[0],
&c->grayscaleMixer[1], &c->grayscaleMixer[2]);
}
+#ifdef UFRAW_DESPECKLE
if ( strcmp("DespeckleWindow", element)==0 ) {
sscanf(temp, "%lf %lf %lf", &c->despeckleWindow[0],
&c->despeckleWindow[1], &c->despeckleWindow[2]);
@@ -698,6 +701,7 @@
sscanf(temp, "%lf %lf %lf", &c->despecklePasses[0],
&c->despecklePasses[1], &c->despecklePasses[2]);
}
+#endif
/* OutputIntent replaces Intent starting from ufraw-0.12. */
if ( strcmp("OutputIntent", element)==0 )
c->intent[out_profile] = conf_find_name(temp, intentNames,
@@ -1028,6 +1032,7 @@
c->grayscaleMixer[1],
c->grayscaleMixer[2]);
}
+#ifdef UFRAW_DESPECKLE
if (c->despeckleWindow[0] != conf_default.despeckleWindow[0] ||
c->despeckleWindow[1] != conf_default.despeckleWindow[1] ||
c->despeckleWindow[2] != conf_default.despeckleWindow[2]) {
@@ -1046,6 +1051,7 @@
buf = uf_markup_buf(buf, "<DespecklePasses>%f %f
%f</DespecklePasses>\n",
c->despecklePasses[0], c->despecklePasses[1],
c->despecklePasses[2]);
}
+#endif
if (c->size!=conf_default.size)
buf = uf_markup_buf(buf, "<Size>%d</Size>\n", c->size);
if (c->shrink!=conf_default.shrink)
@@ -1295,9 +1301,11 @@
dst->grayscaleMode = src->grayscaleMode;
memcpy(dst->grayscaleMixer, src->grayscaleMixer,
sizeof dst->grayscaleMixer);
+#ifdef UFRAW_DESPECKLE
memcpy(dst->despeckleWindow, src->despeckleWindow, sizeof
(dst->despeckleWindow));
memcpy(dst->despeckleDecay, src->despeckleDecay, sizeof
(dst->despeckleDecay));
memcpy(dst->despecklePasses, src->despecklePasses, sizeof
(dst->despecklePasses));
+#endif
g_strlcpy(dst->darkframeFile, src->darkframeFile, max_path);
/* We only copy the current BaseCurve */
if (src->BaseCurveIndex<=camera_curve) {
Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.249
retrieving revision 1.250
diff -u -d -r1.249 -r1.250
--- ufraw_ufraw.c 4 Mar 2010 04:52:32 -0000 1.249
+++ ufraw_ufraw.c 30 Mar 2010 02:45:24 -0000 1.250
@@ -951,6 +951,7 @@
uf->hotpixels = count;
}
+#ifdef UFRAW_DESPECKLE
static void ufraw_despeckle_line(guint16 *base, int step, int size, int window,
double decay, int colors, int c)
{
@@ -1063,6 +1064,7 @@
}
return active;
}
+#endif
static int ufraw_calculate_scale(ufraw_data *uf)
{
@@ -1147,7 +1149,9 @@
dcraw_wavelet_denoise(raw, uf->conf->threshold * sqrt(uf->raw_multiplier));
dcraw_finalize_raw(raw, dark, uf->developer->rgbWB);
raw->raw.image = rawimage;
+#ifdef UFRAW_DESPECKLE
ufraw_despeckle(uf, phase);
+#endif
#ifdef HAVE_LENSFUN
ufraw_prepare_tca(uf);
if (uf->TCAmodifier != NULL) {
@@ -1825,10 +1829,12 @@
ufraw_invalidate_layer(uf, ufraw_raw_phase);
}
+#ifdef UFRAW_DESPECKLE
void ufraw_invalidate_despeckle_layer(ufraw_data *uf)
{
ufraw_invalidate_layer(uf, ufraw_raw_phase);
}
+#endif
/*
* This one is special. The raw layer applies WB in preparation for optimal
@@ -1842,9 +1848,11 @@
uf->Images[ufraw_raw_phase].valid = 0;
uf->Images[ufraw_raw_phase].invalidate_event = TRUE;
+#ifdef UFRAW_DESPECKLE
/* Despeckling is sensitive for WB changes because it is nonlinear. */
if (ufraw_despeckle_active(uf))
ufraw_invalidate_despeckle_layer(uf);
+#endif
}
/*
Index: ufraw_ui.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ui.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- ufraw_ui.h 4 Mar 2010 05:08:22 -0000 1.41
+++ ufraw_ui.h 30 Mar 2010 02:45:24 -0000 1.42
@@ -70,7 +70,9 @@
#endif
GtkWidget *ResetBlackButton, *ResetBaseCurveButton, *ResetCurveButton;
GtkWidget *ResetGrayscaleChannelMixerButton;
+#ifdef UFRAW_DESPECKLE
GtkWidget *ResetDespeckleButton;
+#endif
GtkWidget *SaveButton;
GtkWidget *ControlButton[num_buttons];
guint16 ButtonMnemonic[num_buttons];
@@ -109,12 +111,14 @@
GtkAdjustment *RotationAdjustment;
GtkWidget *ResetRotationAdjustment;
GtkAdjustment *GrayscaleMixers[3];
+#ifdef UFRAW_DESPECKLE
GtkAdjustment *DespeckleWindowAdj[3];
GtkAdjustment *DespeckleDecayAdj[3];
GtkAdjustment *DespecklePassesAdj[3];
GtkToggleButton *DespeckleLockChannelsButton;
GtkToggleButton *ChannelSelectButton[3];
int ChannelSelect;
+#endif
#ifdef HAVE_LENSFUN
/* The GtkEntry with camera maker/model name */
GtkWidget *CameraModel;
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
ufraw-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs