Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

segv_segmentation_manager.h

Go to the documentation of this file.
00001 #ifndef segv_segmentation_manager_h_
00002 #define segv_segmentation_manager_h_
00003 //--------------------------------------------------------------------------------
00004 //:
00005 // \file
00006 // \brief Manager for segmentation algorithm execution and display
00007 // \author
00008 //   J.L. Mundy
00009 //
00010 // \verbatim
00011 //  Modifications:
00012 //   J.L. Mundy November 18, 2002    Initial version.
00013 // \endverbatim
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   //: access to the window
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   //flags
00107   bool first_; //first image load
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_

Generated on Thu Jan 10 14:54:48 2008 for contrib/brl/bseg/segv by  doxygen 1.4.4