contrib/brl/bseg/segv/segv_menus.cxx
Go to the documentation of this file.
00001 #include "segv_menus.h"
00002 //:
00003 // \file
00004 #include <vgui/vgui.h>
00005 #include <vgui/vgui_key.h>
00006 #include <vgui/vgui_menu.h>
00007 #include "segv_segmentation_manager.h"
00008 
00009 //Static munu callback functions
00010 
00011 void segv_menus::quit_callback()
00012 {
00013   segv_segmentation_manager::instance()->quit();
00014 }
00015 
00016 
00017 void segv_menus::load_image_callback()
00018 {
00019   segv_segmentation_manager::instance()->load_image();
00020 }
00021 
00022 void segv_menus::clear_display_callback()
00023 {
00024   segv_segmentation_manager::instance()->clear_display();
00025 }
00026 
00027 void segv_menus::original_image_callback()
00028 {
00029   segv_segmentation_manager::instance()->original_image();
00030 }
00031 
00032 void segv_menus::roi_callback()
00033 {
00034   segv_segmentation_manager::instance()->roi();
00035 }
00036 
00037 void segv_menus::gaussian_callback()
00038 {
00039   segv_segmentation_manager::instance()->gaussian();
00040 }
00041 
00042 void segv_menus::downsample_callback()
00043 {
00044   segv_segmentation_manager::instance()->downsample();
00045 }
00046 
00047 void segv_menus::convolution_callback()
00048 {
00049   segv_segmentation_manager::instance()->convolution();
00050 }
00051 
00052 void segv_menus::harris_measure_callback()
00053 {
00054   segv_segmentation_manager::instance()->harris_measure();
00055 }
00056 
00057 void segv_menus::beaudet_measure_callback()
00058 {
00059   segv_segmentation_manager::instance()->beaudet_measure();
00060 }
00061 
00062 void segv_menus::vd_edges_callback()
00063 {
00064   segv_segmentation_manager::instance()->vd_edges();
00065 }
00066 
00067 void segv_menus::regions_callback()
00068 {
00069   segv_segmentation_manager::instance()->regions();
00070 }
00071 
00072 void segv_menus::fit_lines_callback()
00073 {
00074   segv_segmentation_manager::instance()->fit_lines();
00075 }
00076 
00077 void segv_menus::test_camera_parms_callback()
00078 {
00079   segv_segmentation_manager::instance()->test_camera_parms();
00080 }
00081 #if 0
00082 #ifdef HAS_XERCES
00083 void segv_menus::read_xml_edges_callback()
00084 {
00085   segv_segmentation_manager::instance()->read_xml_edges();
00086 }
00087 #endif
00088 #endif
00089 
00090 void segv_menus::test_face_callback()
00091 {
00092 segv_segmentation_manager::instance()->test_face();
00093 }
00094 
00095 void segv_menus::test_digital_lines_callback()
00096 {
00097 segv_segmentation_manager::instance()->test_digital_lines();
00098 }
00099 
00100 
00101 void segv_menus::display_IHS_callback()
00102 {
00103 segv_segmentation_manager::instance()->display_IHS();
00104 }
00105 
00106 void segv_menus::rotate_image_callback()
00107 {
00108 segv_segmentation_manager::instance()->rotate_image();
00109 }
00110 
00111 void segv_menus::compute_mutual_info_callback()
00112 {
00113 segv_segmentation_manager::instance()->compute_mutual_info();
00114 }
00115 
00116 
00117 void segv_menus::create_box_callback()
00118 {
00119   segv_segmentation_manager::instance()->create_box();
00120 }
00121 
00122 void segv_menus::create_polygon_callback()
00123 {
00124   segv_segmentation_manager::instance()->create_polygon();
00125 }
00126 
00127 void segv_menus::compute_background_info_callback()
00128 {
00129 segv_segmentation_manager::instance()->compute_background_info();
00130 }
00131 
00132 void segv_menus::set_foreground_face_callback()
00133 {
00134   segv_segmentation_manager::instance()->set_foreground_face();
00135 }
00136 
00137 void segv_menus::set_background_face_callback()
00138 {
00139   segv_segmentation_manager::instance()->set_background_face();
00140 }
00141 
00142 
00143 void segv_menus::compute_watershed_regions_callback()
00144 {
00145   segv_segmentation_manager::instance()->compute_watershed_regions();
00146 }
00147 
00148 
00149 void segv_menus::display_histogram_track_callback()
00150 {
00151   segv_segmentation_manager::instance()->display_histogram_track();
00152 }
00153 
00154 void segv_menus::set_range_params_callback()
00155 {
00156   segv_segmentation_manager::instance()->set_range_params();
00157 }
00158 
00159 //segv_menus definition
00160 vgui_menu segv_menus::get_menu()
00161 {
00162   vgui_menu menubar;
00163   vgui_menu menufile;
00164   vgui_menu menuview;
00165   vgui_menu menuedit;
00166   //file menu entries
00167   menufile.add( "Quit", quit_callback,(vgui_key)'q', vgui_CTRL);
00168   menufile.add( "Load Image", load_image_callback,(vgui_key)'l', vgui_CTRL);
00169 #if 0 // was: #if HAS_XERCES
00170   menufile.add( "Load XML Edges", read_xml_edges_callback);
00171 #endif
00172   //view menu entries
00173   menuview.add("Original Image", original_image_callback);
00174   menuview.add("Clear Display", clear_display_callback);
00175   menuview.add("Display IHS", display_IHS_callback);
00176   menuview.add("Rotate", rotate_image_callback);
00177   menuview.add("Display Histogram Track File", display_histogram_track_callback);
00178   menuview.add("Set Range Params", set_range_params_callback);
00179 
00180   //edit menu entries
00181   menuedit.add("Region Of Interest", roi_callback);
00182   menuedit.add("Gaussian", gaussian_callback);
00183   menuedit.add("Downsample", downsample_callback);
00184   menuedit.add("Convolution", convolution_callback);
00185   menuedit.add("Harris", harris_measure_callback);
00186   menuedit.add("Beaudet", beaudet_measure_callback);
00187   menuedit.add("VD Edges", vd_edges_callback);
00188   menuedit.add("Edgel Regions", regions_callback);
00189   menuedit.add("Watershed Regions", compute_watershed_regions_callback);
00190   menuedit.add("Line Segments", fit_lines_callback);
00191   menuedit.add("TestFace", test_face_callback);
00192   menuedit.add("TestDigitalCurves", test_digital_lines_callback);
00193   menuedit.add("Test Camera Parms",test_camera_parms_callback);
00194   menuedit.add("Create Box", create_box_callback);
00195   menuedit.add("Create Polygon", create_polygon_callback,(vgui_key)'a', vgui_CTRL);
00196   menuedit.add("Compute Mutual Info",compute_mutual_info_callback);
00197 
00198 
00199   menuedit.add("Compute Fore/Background entropy",compute_background_info_callback);
00200   menuedit.add("Set Background Face", set_background_face_callback);
00201 
00202   menuedit.add("Set Foreground Face", set_foreground_face_callback);
00203 
00204   //Top level menu layout
00205   menubar.add( "File", menufile);
00206   menubar.add( "View", menuview);
00207   menubar.add( "Edit", menuedit);
00208   return menubar;
00209 }
00210