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 ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs