test-xmlImage.C

Go to the documentation of this file.
00001 /*! @file ObjRec/test-xmlImage.C test reading image information from xml files */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file: Lior Elazary <elazary@usc.edu>
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/ObjRec/test-xmlImage.C $
00035 // $Id: test-xmlImage.C 9412 2008-03-10 23:10:15Z farhan $
00036 //
00037 
00038 
00039 #include "Component/ModelManager.H"
00040 #include "Image/Image.H"
00041 #include "Image/ImageSet.H"
00042 #include "Image/DrawOps.H"
00043 #include "Media/TestImages.H"
00044 #include "Raster/Raster.H"
00045 #include "GUI/DebugWin.H"
00046 
00047 
00048 int main(const int argc, const char **argv)
00049 {
00050 
00051   ModelManager *mgr;
00052   MYLOGVERB = LOG_INFO;
00053   mgr = new ModelManager("Test ObjRec");
00054 
00055   if (mgr->parseCommandLine(
00056         (const int)argc, (const char**)argv, "<images set xml file>", 1, 1) == false)
00057     return 1;
00058 
00059   mgr->start();
00060 
00061   const char *imageSetFile = mgr->getExtraArg(0).c_str();
00062   //load the images
00063   TestImages testImages(imageSetFile, TestImages::XMLFILE);
00064 
00065   for (uint scene=0; scene<testImages.getNumScenes(); scene++) //look at all the scenes
00066   {
00067     Image<PixRGB<byte> > sceneImg = testImages.getScene(scene);
00068     TestImages::SceneData sceneData = testImages.getSceneData(scene);
00069 
00070     LINFO("Scene name %s", sceneData.filename.c_str());
00071     for (uint obj=0; obj<testImages.getNumObj(scene); obj++) //look at all the objects in the scene
00072     {
00073       TestImages::ObjData objData = testImages.getObjectData(scene, obj);
00074       LINFO("Image: %i %s %s", objData.id, objData.description.c_str(), objData.filename.c_str());
00075       printf("Image: %i %s %s\n", objData.id, objData.description.c_str(), objData.filename.c_str());
00076       //SHOWIMG(objData.img);
00077 
00078 
00079       //draw an outline of the object in the scene
00080       int lineWidth = int(sceneImg.getWidth()*0.005);
00081 
00082 
00083       std::vector<Point2D<int> > objPoly = objData.polygon;
00084       Point2D<int> p1 = objPoly[0];
00085       Point2D<int> centerLoc = p1;
00086       for(uint i=1; i<objPoly.size(); i++)
00087       {
00088         drawLine(sceneImg, p1, objPoly[i], PixRGB<byte>(255, 0, 0), lineWidth);
00089         p1 = objPoly[i];
00090         centerLoc.i += p1.i; centerLoc.j += p1.j;
00091       }
00092       drawLine(sceneImg, p1, objPoly[0], PixRGB<byte>(255, 0, 0), lineWidth); //close the polygon
00093 
00094       centerLoc.i /= objPoly.size();
00095       centerLoc.j /= objPoly.size();
00096       writeText(sceneImg, centerLoc, objData.description.c_str(), PixRGB<byte>(255), PixRGB<byte>(0));
00097 
00098     }
00099     SHOWIMG(sceneImg);
00100     //char filename[255];
00101     //sprintf(filename, "outlinedImages/%s.ppm", sceneData.filename.c_str());
00102     //LINFO("Write image %s\n", filename);
00103     //Raster::WriteRGB(sceneImg, filename);
00104 
00105   }
00106 
00107   // stop all our ModelComponents
00108   mgr->stop();
00109 
00110   return 0;
00111 
00112 }
00113 
Generated on Sun May 8 08:41:08 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3