1 #ifndef bwm_image_proc_h_
2 #define bwm_image_proc_h_
3 
4 #include <iostream>
5 #include <vector>
6 #ifdef _MSC_VER
7 #  include <vcl_msvc_warnings.h>
8 #endif
9 
10 #include <vgl/vgl_polygon.h>
11 
12 #include <bgui/bgui_image_tableau.h>
13 #include <vgui/vgui_range_map_params_sptr.h>
14 
15 #include <vsol/vsol_box_2d_sptr.h>
16 #include <vsol/vsol_polygon_2d_sptr.h>
17 #include <vsol/vsol_line_2d_sptr.h>
18 #include <vsol/vsol_digital_curve_2d_sptr.h>
19 
20 #include <vdgl/vdgl_digital_curve_sptr.h>
21 
22 class bwm_image_processor
23 {
24  public:
25   static void hist_plot(bgui_image_tableau_sptr img,
26                         vsol_polygon_2d_sptr p = nullptr);
27 
28   static void intensity_profile(bgui_image_tableau_sptr img,
29                                 float start_col, float start_row,
30                                 float end_col, float end_row);
31 
32   static void range_map(bgui_image_tableau_sptr img);
33 
34 #if 0
35   static bool step_edges_vd(bgui_image_tableau_sptr const& img,
36                             vsol_box_2d_sptr const& roi,
37                             std::vector<vdgl_digital_curve_sptr>& edges);
38 #endif
39 
40   static bool step_edges_vd(bgui_image_tableau_sptr const& img,
41                             vsol_box_2d_sptr const& roi,
42                             std::vector<vsol_digital_curve_2d_sptr>& edges);
43 
44   static bool lines_vd(bgui_image_tableau_sptr const& img,
45                        vsol_box_2d_sptr const& roi,
46                        std::vector<vsol_line_2d_sptr>& edges);
47 
48   static void scan_regions(bgui_image_tableau_sptr const& img,
49                            std::vector<vgl_polygon<double> > const& regions);
50 
51   static bool crop_to_box(bgui_image_tableau_sptr const& img,
52                           vsol_box_2d_sptr const& roi,
53                           vil_image_resource_sptr& chip);
54 
55 };
56 
57 #endif
58