125
125
//optional: parallelize it!
126
126
//TODO: IMPORTANT!! I am not 100% sure if this can actually be parallised. I
127
127
//should check that omp really only parallises the outer loop.
128
#pragma omp parallel for default(none) schedule(static) shared(ivoid,ovoid,roi_in,roi_out,d, piece) private(mu_f, mu_b, highpass)
128
#pragma omp parallel for default(none) schedule(static) shared(ivoid,ovoid,roi_in,roi_out,d, piece) private(mu_f, mu_b, highpass)
130
130
for(int j=0; j<roi_out->height; j++)
268
268
dt_iop_anlfyeni_params_t *p = (dt_iop_anlfyeni_params_t *)self->params;
270
270
self->widget = GTK_WIDGET(gtk_hbox_new(FALSE, 0));
271
g->vbox1 = GTK_VBOX(gtk_vbox_new(FALSE, DT_GUI_IOP_MODULE_CONTROL_SPACING));
272
g->vbox2 = GTK_VBOX(gtk_vbox_new(FALSE, DT_GUI_IOP_MODULE_CONTROL_SPACING));
273
gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(g->vbox1), FALSE, FALSE, 5);
274
gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(g->vbox2), TRUE, TRUE, 5);
277
widget = dtgtk_reset_label_new(_("alpha"), self, &p->alpha, sizeof(float));
278
gtk_box_pack_start(GTK_BOX(g->vbox1), widget, TRUE, TRUE, 0);
279
widget = dtgtk_reset_label_new(_("scale"), self, &p->scale, sizeof(float));
280
gtk_box_pack_start(GTK_BOX(g->vbox1), widget, TRUE, TRUE, 0);
281
widget = dtgtk_reset_label_new(_("strength"), self, &p->strength, sizeof(float));
282
gtk_box_pack_start(GTK_BOX(g->vbox1), widget, TRUE, TRUE, 0);
271
g->vbox = GTK_VBOX(gtk_vbox_new(FALSE, DT_GUI_IOP_MODULE_CONTROL_SPACING));
272
gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(g->vbox), TRUE, TRUE, 5);
284
274
g->scale1 = DTGTK_SLIDER(dtgtk_slider_new_with_range(DARKTABLE_SLIDER_BAR,0.001, 0.07, 0.001, p->alpha, 3));
275
g_object_set (GTK_OBJECT(g->scale1), "tooltip-text", _("sensitivity of edge detection"), (char *)NULL);
276
dtgtk_slider_set_label(g->scale1,_("sensitivity"));
285
277
g->scale2 = DTGTK_SLIDER(dtgtk_slider_new_with_range(DARKTABLE_SLIDER_BAR,0.0, 6.0000, 0.010, p->scale, 3));
278
g_object_set (GTK_OBJECT(g->scale2), "tooltip-text", _("spatial extent of the effect around edges"), (char *)NULL);
279
dtgtk_slider_set_label(g->scale2,_("scale"));
286
280
g->scale3 = DTGTK_SLIDER(dtgtk_slider_new_with_range(DARKTABLE_SLIDER_BAR,0.0, 10.0000, 0.001, p->strength, 3));
287
gtk_box_pack_start(GTK_BOX(g->vbox2), GTK_WIDGET(g->scale1), TRUE, TRUE, 0);
288
gtk_box_pack_start(GTK_BOX(g->vbox2), GTK_WIDGET(g->scale2), TRUE, TRUE, 0);
289
gtk_box_pack_start(GTK_BOX(g->vbox2), GTK_WIDGET(g->scale3), TRUE, TRUE, 0);
281
g_object_set (GTK_OBJECT(g->scale3), "tooltip-text", _("strength of the local contrast"), (char *)NULL);
282
dtgtk_slider_set_label(g->scale3,_("strength"));
283
gtk_box_pack_start(GTK_BOX(g->vbox), GTK_WIDGET(g->scale1), TRUE, TRUE, 0);
284
gtk_box_pack_start(GTK_BOX(g->vbox), GTK_WIDGET(g->scale2), TRUE, TRUE, 0);
285
gtk_box_pack_start(GTK_BOX(g->vbox), GTK_WIDGET(g->scale3), TRUE, TRUE, 0);
291
287
g_signal_connect (G_OBJECT (g->scale1), "value-changed",
292
288
G_CALLBACK (alpha_callback), self);