featureVectorDistance.C
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef APPNEURO_FEATUREVECTORDISTANCE_C_DEFINED
00039 #define APPNEURO_FEATUREVECTORDISTANCE_C_DEFINED
00040
00041 #include "Component/ModelManager.H"
00042 #include "Image/Image.H"
00043 #include "Image/Pixels.H"
00044 #include "Image/ShapeOps.H"
00045 #include "Image/FilterOps.H"
00046 #include "Image/CutPaste.H"
00047 #include "Neuro/getSaliency.H"
00048 #include "Raster/Raster.H"
00049 #include "Util/log.H"
00050 #include "Psycho/EyeTrace.H"
00051 #include "Image/MathOps.H"
00052 #include "Util/StringConversions.H"
00053 #include <fstream>
00054 #include <iostream>
00055 #include <stdio.h>
00056 #include <stdlib.h>
00057
00058
00059
00060 int main(int argc, char** argv)
00061 {
00062 ModelManager manager("test");
00063
00064 nub::ref<GetSaliency> saliency(new GetSaliency(manager));
00065 manager.addSubComponent(saliency);
00066 if (manager.parseCommandLine(argc, argv, "<imageDirectory> <specDirectory> <outputDirectory>", 3, 3) == false)
00067 return -1;
00068 manager.start();
00069
00070 std::string trgtImgFile, arrayImgFile, specFile, outTrgFile,
00071 outArrFile,outNameFile, corFile;
00072 size_t numSubMap;
00073 std::ofstream outputFile;
00074
00075
00076 outNameFile = manager.getExtraArg(2) + "mapNames.dat";
00077 outputFile.open(outNameFile.c_str());
00078
00079 for(int i=1;i<=5;i++)
00080 {
00081 trgtImgFile = manager.getExtraArg(0) + convertToString(i) + "TARGET.png";
00082 arrayImgFile = manager.getExtraArg(0) + convertToString(i) + "ARRAY.png";
00083 specFile = manager.getExtraArg(1) + convertToString(i) + "SPEC.datm";
00084
00085 LINFO("computing maps for %s",arrayImgFile.c_str());
00086
00087 const Image<PixRGB<byte> > trgtImg = Raster::ReadRGB(trgtImgFile);
00088 const Image<PixRGB<byte> > arrayImg = Raster::ReadRGB(arrayImgFile);
00089
00090 const int numSalientSpotsTr = saliency->compute(trgtImg, SimTime::SECS(0.1));
00091 LINFO("found %d salient spots", numSalientSpotsTr);
00092 const Image<float> salmap = saliency->getSalmap();
00093 const Image<float> resized_salmap = rescale(salmap, trgtImg.getDims());
00094 const std::vector<subMap> itsTrgtSubMaps = saliency->getSubMaps();
00095
00096 const int numSalientSpotsArray = saliency->compute(arrayImg,SimTime::SECS(0.1));
00097 LINFO("found %d salient spots", numSalientSpotsArray);
00098 const std::vector<subMap> itsArraySubMaps = saliency->getSubMaps();
00099
00100 numSubMap = itsTrgtSubMaps.size();
00101
00102
00103 for (size_t j=0;j<numSubMap;j++)
00104 {
00105 outTrgFile = manager.getExtraArg(2) + convertToString(i) + "TRGsub"
00106 + convertToString(j) + ".png";
00107 LINFO("writing to file %s",outTrgFile.c_str());
00108 Raster::WriteFloat(itsTrgtSubMaps[j].itsSubMap,FLOAT_NORM_0_255,outTrgFile);
00109
00110 outArrFile = manager.getExtraArg(2) + convertToString(i) + "ARRsub"
00111 + convertToString(j) + ".png";
00112 LINFO("writing to file %s",outArrFile.c_str());
00113 Raster::WriteFloat(itsArraySubMaps[j].itsSubMap,FLOAT_NORM_0_255,outArrFile);
00114 outputFile << itsArraySubMaps[j].itsSubMapName <<"\n";
00115
00116 corFile = manager.getExtraArg(2) + convertToString(i) + "CorSub"
00117 + convertToString(j) + ".png";
00118
00119 Image<float> temp = crop(itsArraySubMaps[j].itsSubMap,Point2D<int> (58,31),Dims(15,15));
00120 Raster::WriteFloat(correlation(itsArraySubMaps[j].itsSubMap,temp), FLOAT_NORM_0_255, corFile);
00121
00122 }
00123
00124 }
00125
00126 outputFile.close();
00127 manager.stop();
00128
00129 return 0;
00130 }
00131
00132
00133
00134
00135
00136
00137
00138
00139 #endif // APPNEURO_FEATUREVECTORDISTANCE_C_DEFINED