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