00001 #ifndef segv_segmentation_manager_h_
00002 #define segv_segmentation_manager_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <vcl_vector.h>
00016 #include <vil1/vil1_image.h>
00017 #include <vsol/vsol_line_2d_sptr.h>
00018 #include <vsol/vsol_polyline_2d_sptr.h>
00019 #include <vtol/vtol_edge_2d_sptr.h>
00020 #include <vsol/vsol_point_2d_sptr.h>
00021 #include <vtol/vtol_intensity_face_sptr.h>
00022 #include <vtol/vtol_face_2d_sptr.h>
00023 #include <vgui/vgui_wrapper_tableau.h>
00024 #include <vgui/vgui_grid_tableau_sptr.h>
00025 #include <vgui/vgui_rubberband_tableau_sptr.h>
00026 #include <vgui/vgui_style_sptr.h>
00027 #include <bgui/bgui_picker_tableau_sptr.h>
00028 #include <bgui/bgui_vtol2D_tableau_sptr.h>
00029 #include <bgui/bgui_image_tableau_sptr.h>
00030 #include <bgui/bgui_bargraph_clipon_tableau_sptr.h>
00031
00032 class vgui_window;
00033
00034 class segv_segmentation_manager : public vgui_wrapper_tableau
00035 {
00036 public:
00037 segv_segmentation_manager();
00038 ~segv_segmentation_manager();
00039 static segv_segmentation_manager *instance();
00040 void quit();
00041 void load_image();
00042 void clear_display();
00043 void original_image();
00044 void roi();
00045 void gaussian();
00046 void convolution();
00047 void downsample();
00048 void harris_measure();
00049 void beaudet_measure();
00050 void vd_edges();
00051 void regions();
00052 void test_camera_parms();
00053 void fit_lines();
00054 void test_face();
00055 void test_digital_lines();
00056 void display_IHS();
00057 void rotate_image();
00058 void compute_mutual_info();
00059 void create_box();
00060 void create_polygon();
00061 void compute_background_info();
00062 void set_foreground_face();
00063 void set_background_face();
00064 void compute_parallel_coverage();
00065 void compute_watershed_regions();
00066 void find_vehicle();
00067 void display_histogram_track();
00068 void set_range_params();
00069
00070 #if 0
00071 #ifdef HAS_XERCES
00072 void read_xml_edges();
00073 #endif
00074 #endif
00075
00076 void init();
00077
00078
00079 vgui_window* get_window(){return win_;}
00080 void set_window(vgui_window* win){win_=win;}
00081
00082 protected:
00083 void draw_edges(vcl_vector<vtol_edge_2d_sptr>& edges, bool verts=false);
00084 void draw_lines(vcl_vector<vsol_line_2d_sptr> const & line_segs,
00085 const vgui_style_sptr& style = NULL);
00086 void draw_polylines(vcl_vector<vsol_polyline_2d_sptr> const & polys);
00087 void draw_regions(vcl_vector<vtol_intensity_face_sptr>& regions,
00088 bool verts=false);
00089 void draw_points(vcl_vector<vsol_point_2d_sptr> const & points,
00090 const vgui_style_sptr& style);
00091
00092 void set_selected_grid_image(vil1_image& image);
00093 void add_image(vil1_image& image);
00094 void add_image_at(vil1_image& image, const unsigned col, const unsigned row);
00095 vil1_image selected_image();
00096 vil1_image image_at(const unsigned col, const unsigned row);
00097 bool
00098 set_image_at(const unsigned col, const unsigned row, vil1_image& image);
00099 bgui_image_tableau_sptr selected_image_tab();
00100 bgui_vtol2D_tableau_sptr selected_vtol2D_tab();
00101 bgui_picker_tableau_sptr selected_picker_tab();
00102 vgui_rubberband_tableau_sptr selected_rubber_tab();
00103 vtol_face_2d_sptr face_at(const int col, const int row);
00104
00105 private:
00106
00107 bool first_;
00108 vgui_window* win_;
00109 vgui_grid_tableau_sptr grid_;
00110 vtol_face_2d_sptr foreground_face_;
00111 vtol_face_2d_sptr background_face_;
00112 bgui_bargraph_clipon_tableau_sptr bargraph_;
00113 static segv_segmentation_manager *instance_;
00114 };
00115
00116 #endif // segv_segmentation_manager_h_