00001 #include "segv_vil_menus.h"
00002
00003
00004 #include <vgui/vgui.h>
00005 #include <vgui/vgui_key.h>
00006 #include <vgui/vgui_menu.h>
00007 #include "segv_vil_segmentation_manager.h"
00008
00009
00010
00011 void segv_vil_menus::quit_callback()
00012 {
00013 segv_vil_segmentation_manager::instance()->quit();
00014 }
00015
00016
00017 void segv_vil_menus::load_image_callback()
00018 {
00019 segv_vil_segmentation_manager::instance()->load_image();
00020 }
00021
00022 void segv_vil_menus::save_image_callback()
00023 {
00024 segv_vil_segmentation_manager::instance()->save_image();
00025 }
00026
00027 void segv_vil_menus::save_camera_callback()
00028 {
00029 segv_vil_segmentation_manager::instance()->save_nitf_camera();
00030 }
00031
00032 void segv_vil_menus::remove_image_callback()
00033 {
00034 segv_vil_segmentation_manager::instance()->remove_image();
00035 }
00036
00037
00038 void segv_vil_menus::convert_to_grey_callback()
00039 {
00040 segv_vil_segmentation_manager::instance()->convert_to_grey();
00041 }
00042
00043 void segv_vil_menus::set_range_params_callback()
00044 {
00045 segv_vil_segmentation_manager::instance()->set_range_params();
00046 }
00047
00048 void segv_vil_menus::clear_display_callback()
00049 {
00050 segv_vil_segmentation_manager::instance()->clear_display();
00051 }
00052
00053 void segv_vil_menus::threshold_image_callback()
00054 {
00055 segv_vil_segmentation_manager::instance()->threshold_image();
00056 }
00057
00058 void segv_vil_menus::harris_corners_callback()
00059 {
00060 segv_vil_segmentation_manager::instance()->harris_corners();
00061 }
00062
00063 void segv_vil_menus::nonmaximal_suppression_callback()
00064 {
00065 segv_vil_segmentation_manager::instance()->nonmaximal_suppression();
00066 }
00067
00068 void segv_vil_menus::vd_edges_callback()
00069 {
00070 segv_vil_segmentation_manager::instance()->vd_edges();
00071 }
00072
00073 void segv_vil_menus::fit_lines_callback()
00074 {
00075 segv_vil_segmentation_manager::instance()->fit_lines();
00076 }
00077
00078 void segv_vil_menus::fit_conics_callback()
00079 {
00080 segv_vil_segmentation_manager::instance()->fit_conics();
00081 }
00082
00083 void segv_vil_menus::fit_overlay_conics_callback()
00084 {
00085 segv_vil_segmentation_manager::instance()->fit_overlay_conics();
00086 }
00087
00088 void segv_vil_menus::mser_conics_callback()
00089 {
00090 segv_vil_segmentation_manager::instance()->mser_conics();
00091 }
00092
00093
00094 void segv_vil_menus::regions_callback()
00095 {
00096 segv_vil_segmentation_manager::instance()->regions();
00097 }
00098
00099 void segv_vil_menus::rotate_image_callback()
00100 {
00101 segv_vil_segmentation_manager::instance()->rotate_image();
00102 }
00103
00104 void segv_vil_menus::reduce_image_callback()
00105 {
00106 segv_vil_segmentation_manager::instance()->reduce_image();
00107 }
00108
00109 void segv_vil_menus::reduce_image_bicubic_callback()
00110 {
00111 segv_vil_segmentation_manager::instance()->reduce_image_bicubic();
00112 }
00113
00114 void segv_vil_menus::expand_image_callback()
00115 {
00116 segv_vil_segmentation_manager::instance()->expand_image();
00117 }
00118
00119 void segv_vil_menus::expand_image_bicubic_callback()
00120 {
00121 segv_vil_segmentation_manager::instance()->expand_image_bicubic();
00122 }
00123
00124 void segv_vil_menus::flip_image_lr_callback()
00125 {
00126 segv_vil_segmentation_manager::instance()->flip_image_lr();
00127 }
00128
00129 void segv_vil_menus::display_images_as_color_callback()
00130 {
00131 segv_vil_segmentation_manager::instance()->display_images_as_color();
00132 }
00133
00134 void segv_vil_menus::add_images_callback()
00135 {
00136 segv_vil_segmentation_manager::instance()->add_images();
00137 }
00138
00139 void segv_vil_menus::subtract_images_callback()
00140 {
00141 segv_vil_segmentation_manager::instance()->subtract_images();
00142 }
00143
00144 void segv_vil_menus::negate_image_callback()
00145 {
00146 segv_vil_segmentation_manager::instance()->negate_image();
00147 }
00148
00149 void segv_vil_menus::extrema_callback()
00150 {
00151 segv_vil_segmentation_manager::instance()->extrema();
00152 }
00153
00154 void segv_vil_menus::rot_extrema_callback()
00155 {
00156 segv_vil_segmentation_manager::instance()->rot_extrema();
00157 }
00158
00159
00160 void segv_vil_menus::beaudet_callback()
00161 {
00162 segv_vil_segmentation_manager::instance()->beaudet();
00163 }
00164
00165 void segv_vil_menus::parallel_coverage_callback()
00166 {
00167 segv_vil_segmentation_manager::instance()->parallel_coverage();
00168 }
00169
00170 void segv_vil_menus::entropy_callback()
00171 {
00172 segv_vil_segmentation_manager::instance()->entropy();
00173 }
00174
00175 void segv_vil_menus::minfo_callback()
00176 {
00177 segv_vil_segmentation_manager::instance()->minfo();
00178 }
00179
00180 void segv_vil_menus::max_trace_scale_callback()
00181 {
00182 segv_vil_segmentation_manager::instance()->max_trace_scale();
00183 }
00184
00185 void segv_vil_menus::color_order_callback()
00186 {
00187 segv_vil_segmentation_manager::instance()->color_order();
00188 }
00189
00190 void segv_vil_menus::inline_viewer_callback()
00191 {
00192 segv_vil_segmentation_manager::instance()->inline_viewer();
00193 }
00194
00195 void segv_vil_menus::intensity_profile_callback()
00196 {
00197 segv_vil_segmentation_manager::instance()->intensity_profile();
00198 }
00199
00200 void segv_vil_menus::intensity_histogram_callback()
00201 {
00202 segv_vil_segmentation_manager::instance()->intensity_histogram();
00203 }
00204
00205
00206 void segv_vil_menus::project_points_callback()
00207 {
00208 segv_vil_segmentation_manager::instance()->project_points();
00209 }
00210
00211 void segv_vil_menus::image_as_vrml_points_callback()
00212 {
00213 segv_vil_segmentation_manager::instance()->image_as_vrml_points();
00214 }
00215
00216 void segv_vil_menus::line_image_callback()
00217 {
00218 segv_vil_segmentation_manager::instance()->draw_line_image();
00219 }
00220
00221
00222 vgui_menu segv_vil_menus::get_menu()
00223 {
00224 vgui_menu menubar;
00225 vgui_menu menufile;
00226 vgui_menu menuview;
00227 vgui_menu menuedit;
00228 vgui_menu menuops;
00229
00230 menufile.add( "Quit", quit_callback,(vgui_key)'q', vgui_CTRL);
00231 menufile.add( "Load Image", load_image_callback,(vgui_key)'l', vgui_CTRL);
00232 menufile.add( "Save Image", save_image_callback);
00233 menufile.add( "Save NITF Camera", save_camera_callback);
00234
00235
00236 menuview.add("Remove Image", remove_image_callback);
00237 menuview.add("Clear Spatial Objects", clear_display_callback);
00238 menuview.add("Intensity Profile", intensity_profile_callback);
00239 menuview.add("Set Range Params", set_range_params_callback);
00240 menuview.add("Inline Histogram Viewer", inline_viewer_callback);
00241 menuview.add("Histogram Plot ", intensity_histogram_callback);
00242 menuview.add("RotateImage ", rotate_image_callback);
00243 menuview.add("ReduceImage(Burt)", reduce_image_callback);
00244 menuview.add("ReduceImage(bicubic)", reduce_image_bicubic_callback);
00245 menuview.add("ExpandImage(Burt) ", expand_image_callback);
00246 menuview.add("ExpandImage(bicubic) ", expand_image_bicubic_callback);
00247 menuview.add("Flip Image (LR)", flip_image_lr_callback);
00248 menuview.add("Images as Color", display_images_as_color_callback);
00249 menuview.add("Project Points RPC", project_points_callback);
00250 menuview.add("Image as VRML Points", image_as_vrml_points_callback);
00251
00252
00253
00254 menuedit.add("Threshold", threshold_image_callback);
00255 menuedit.add("Harris", harris_corners_callback);
00256 menuedit.add("Beaudet", beaudet_callback);
00257 menuedit.add("Parallel Coverage", parallel_coverage_callback);
00258
00259 menuedit.add("VD Edges", vd_edges_callback);
00260 menuedit.add("Line Segments", fit_lines_callback);
00261 menuedit.add("Conic Segments", fit_conics_callback);
00262 menuedit.add("Overlay Conic Segments", fit_overlay_conics_callback);
00263 menuedit.add("MSER Conic Regions", mser_conics_callback);
00264 menuedit.add("Edgel Regions", regions_callback);
00265 menuedit.add("Non-Maximal Suppression", nonmaximal_suppression_callback);
00266 menuedit.add("Load Line Image", line_image_callback);
00267
00268
00269 menuops.add("Convert To Greyscale:", convert_to_grey_callback);
00270 menuops.add("Add Images:", add_images_callback);
00271 menuops.add("Subtract Images:", subtract_images_callback);
00272
00273 menuops.add("Negate Image:", negate_image_callback);
00274 menuops.add("Entropy", entropy_callback);
00275 menuops.add("Mutal Information", minfo_callback);
00276 menuops.add("Max Trace Scale", max_trace_scale_callback);
00277 menuops.add("Color Order", color_order_callback);
00278 menuops.add("Extrema", extrema_callback);
00279 menuops.add("Rotational Extrema", rot_extrema_callback);
00280
00281
00282 menubar.add( "File", menufile);
00283 menubar.add( "View", menuview);
00284 menubar.add( "Edit", menuedit);
00285 menubar.add( "Image Ops", menuops);
00286 return menubar;
00287 }
00288