Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <highgui.h>
00011 #include "outlet_pose_estimation/detail/gh_outlets.h"
00012 #include "outlet_pose_estimation/detail/outlet_model.h"
00013 #include "outlet_pose_estimation/detail/features.h"
00014 #include "outlet_pose_estimation/detail/one_way_outlets.h"
00015
00016 using namespace std;
00017
00018 void detect_outlets_gh(IplImage* img, const outlet_template_t& outlet_template, vector<outlet_t>& outlets, IplImage* color_image,
00019 const char* output_path, const char* output_filename)
00020 {
00021 vector<feature_t> test_points;
00022 GetHoleFeatures(img, test_points);
00023
00024 #if defined(_VERBOSE)
00025 IplImage* temp = cvCloneImage(color_image);
00026 DrawFeatures(temp, test_points);
00027
00028 #if 0
00029 cvNamedWindow("1", 1);
00030 cvShowImage("1", temp);
00031 cvWaitKey(0);
00032 #endif
00033
00034 #if defined(_SAVE_VERBOSE)
00035 cvSaveImage("features.jpg", temp);
00036 #endif //_SAVE_VERBOSE
00037 cvReleaseImage(&temp);
00038 #endif //_VERBOSE
00039
00040 vector<feature_t> template_points = outlet_template.get_one_way_descriptor_base()->_GetLabeledFeatures();
00041
00042 for(size_t i = 0; i < test_points.size(); i++) test_points[i].class_id = 0;
00043 matchOutlets(test_points, outlet_template, template_points, outlets);
00044
00045 #if defined(_SAVE_VERBOSE)
00046 IplImage* img1 = cvCloneImage(color_image);
00047 draw_outlets(img1, outlets);
00048 char test_image_filename[1024];
00049 sprintf(test_image_filename, "%s/outlets/%s", output_path, output_filename);
00050 cvSaveImage(test_image_filename, img1);
00051 #endif //_SAVE_VERBOSE
00052
00053 }