contrib/brl/bseg/vpro/vpro_region_process.cxx
Go to the documentation of this file.
00001 #include "vpro_region_process.h"
00002 //:
00003 // \file
00004 #include <vcl_iostream.h>
00005 #include <vil1/vil1_memory_image_of.h>
00006 #include <vcl_vector.h>
00007 #include <vtol/vtol_intensity_face_sptr.h>
00008 #include <vtol/vtol_intensity_face.h>
00009 #include <sdet/sdet_region_proc.h>
00010 
00011 vpro_region_process::vpro_region_process(sdet_detector_params & dp)
00012   : sdet_detector_params(dp)
00013 {
00014 }
00015 
00016 vpro_region_process::~vpro_region_process()
00017 {
00018 }
00019 
00020 bool vpro_region_process::execute()
00021 {
00022   if (this->get_N_input_images() != 1)
00023   {
00024     vcl_cout << "In vpro_region_process::execute() - not exactly one input image\n";
00025     return false;
00026   }
00027   output_topo_objs_.clear();
00028   //assume the input images are grey scale (should really check)
00029   vil1_memory_image_of<unsigned char> img(vpro_video_process::get_input_image(0));
00030 
00031   sdet_region_proc_params rpp((*(sdet_detector_params*)this), true, false, 2);
00032   sdet_region_proc rp(rpp);
00033   rp.set_image(img);
00034   rp.extract_regions();
00035   vcl_vector<vtol_intensity_face_sptr>& regions = rp.get_regions();
00036   for (vcl_vector<vtol_intensity_face_sptr>::iterator fit = regions.begin();
00037        fit != regions.end(); fit++)
00038     output_topo_objs_.push_back((*fit)->cast_to_topology_object());
00039   output_image_ = 0;
00040   return true;
00041 }