00001 #include "segv_menus.h"
00002
00003
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
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 void segv_menus::compute_parallel_coverage_callback()
00143 {
00144 segv_segmentation_manager::instance()->compute_parallel_coverage();
00145 }
00146
00147 void segv_menus::compute_watershed_regions_callback()
00148 {
00149 segv_segmentation_manager::instance()->compute_watershed_regions();
00150 }
00151
00152 void segv_menus::find_vehicle_callback()
00153 {
00154 segv_segmentation_manager::instance()->find_vehicle();
00155 }
00156
00157 void segv_menus::display_histogram_track_callback()
00158 {
00159 segv_segmentation_manager::instance()->display_histogram_track();
00160 }
00161
00162 void segv_menus::set_range_params_callback()
00163 {
00164 segv_segmentation_manager::instance()->set_range_params();
00165 }
00166
00167
00168 vgui_menu segv_menus::get_menu()
00169 {
00170 vgui_menu menubar;
00171 vgui_menu menufile;
00172 vgui_menu menuview;
00173 vgui_menu menuedit;
00174
00175 menufile.add( "Quit", quit_callback,(vgui_key)'q', vgui_CTRL);
00176 menufile.add( "Load Image", load_image_callback,(vgui_key)'l', vgui_CTRL);
00177 #if 0 // was: #if HAS_XERCES
00178 menufile.add( "Load XML Edges", read_xml_edges_callback);
00179 #endif
00180
00181 menuview.add("Original Image", original_image_callback);
00182 menuview.add("Clear Display", clear_display_callback);
00183 menuview.add("Display IHS", display_IHS_callback);
00184 menuview.add("Rotate", rotate_image_callback);
00185 menuview.add("Display Histogram Track File", display_histogram_track_callback);
00186 menuview.add("Set Range Params", set_range_params_callback);
00187
00188
00189 menuedit.add("Region Of Interest", roi_callback);
00190 menuedit.add("Gaussian", gaussian_callback);
00191 menuedit.add("Downsample", downsample_callback);
00192 menuedit.add("Convolution", convolution_callback);
00193 menuedit.add("Harris", harris_measure_callback);
00194 menuedit.add("Beaudet", beaudet_measure_callback);
00195 menuedit.add("VD Edges", vd_edges_callback);
00196 menuedit.add("Edgel Regions", regions_callback);
00197 menuedit.add("Watershed Regions", compute_watershed_regions_callback);
00198 menuedit.add("Line Segments", fit_lines_callback);
00199 menuedit.add("TestFace", test_face_callback);
00200 menuedit.add("TestDigitalCurves", test_digital_lines_callback);
00201 menuedit.add("Test Camera Parms",test_camera_parms_callback);
00202 menuedit.add("Create Box", create_box_callback);
00203 menuedit.add("Create Polygon", create_polygon_callback,(vgui_key)'a', vgui_CTRL);
00204 menuedit.add("Compute Mutual Info",compute_mutual_info_callback);
00205
00206
00207 menuedit.add("Compute Fore/Background entropy",compute_background_info_callback);
00208 menuedit.add("Set Background Face", set_background_face_callback);
00209
00210 menuedit.add("Set Foreground Face", set_foreground_face_callback);
00211 menuedit.add("Compute parallel coverage",compute_parallel_coverage_callback);
00212 menuedit.add("Find Vehicle", find_vehicle_callback);
00213
00214
00215 menubar.add( "File", menufile);
00216 menubar.add( "View", menuview);
00217 menubar.add( "Edit", menuedit);
00218 return menubar;
00219 }
00220