1 #ifndef _HIST_H_
2 #define _HIST_H_
3 
4 struct mtf_data {
5 	fits *fit;
6 	sequence *seq;
7 	float lo;
8 	float mid;
9 	float hi;
10 	const gchar *seqEntry;
11 };
12 
13 typedef enum {
14 	SCALE_LOW,
15 	SCALE_MID,
16 	SCALE_HI
17 } ScaleType;
18 
19 gsl_histogram* computeHisto(fits*, int);
20 gsl_histogram* computeHisto_Selection(fits*, int, rectangle *);
21 void compute_histo_for_gfit();
22 void invalidate_gfit_histogram();
23 void update_gfit_histogram_if_needed();
24 void clear_histograms();
25 float MTF(float x, float m, float lo, float hi);
26 float findMidtonesBalance(fits *fit, float *shadows, float *highlights);
27 void apply_histo_cancel();
28 void toggle_histogram_window_visibility();
29 
30 void on_histoMidEntry_changed(GtkEditable *editable, gpointer user_data);
31 void on_histoShadEntry_changed(GtkEditable *editable, gpointer user_data);
32 void on_histoHighEntry_changed(GtkEditable *editable, gpointer user_data);
33 void mtf_with_parameters(fits *fit, float lo, float mid, float hi);
34 
35 void apply_mtf_to_sequence(struct mtf_data *mtf_args);
36 
37 #endif
38