test-RankOrderBorder.C
00001
00002
00003
00004
00005
00006
00007
00008
00009 #define PI 3.14159265
00010
00011
00012 #include "Component/ModelManager.H"
00013 #include "Media/FrameSeries.H"
00014 #include "Transport/FrameIstream.H"
00015 #include "Media/MediaOpts.H"
00016 #include "Image/Image.H"
00017 #include "Image/Pixels.H"
00018 #include "Raster/Raster.H"
00019 #include "GUI/XWinManaged.H"
00020 #include "Image/ImageSet.H"
00021 #include "Image/DrawOps.H"
00022 #include "Image/PyrBuilder.H"
00023 #include "Image/PyramidOps.H"
00024 #include "Image/Kernels.H"
00025 #include "pix.H"
00026 #include "test-RankOrderBorder.H"
00027 #include "roRetina.H"
00028 #include "roUtil.H"
00029 #include <queue>
00030
00031 using namespace std;
00032
00033
00034
00035
00036
00037 int main(int argc, char* argv[]) {
00038
00039 ModelManager manager("Rank Order Border Ownership");
00040 nub::soft_ref<InputFrameSeries> ifs(new InputFrameSeries(manager));
00041 manager.addSubComponent(ifs);
00042 manager.exportOptions(MC_RECURSE);
00043
00044
00045 if (manager.parseCommandLine(argc, argv,"[image {*.ppm}]", 0, 1) == false) return(1);
00046
00047
00048 manager.start();
00049
00050 rutz::shared_ptr < Image < float > > inputImage(new Image < float > (ifs->getWidth(), ifs->getHeight(), ZEROS));
00051 rutz::shared_ptr < Image < PixRGB<float> > > heatmap(new Image< PixRGB <float> >);
00052 heatmap->resize(ifs->getWidth(), ifs->getHeight());
00053
00054 roRetina<float> retina;
00055
00056
00057 int windowWidth = ifs->getWidth()*2;
00058 int windowHeight = ifs->getHeight()*2;
00059 rutz::shared_ptr<XWinManaged> window1;
00060 window1.reset(new XWinManaged(Dims(windowWidth,windowHeight), 0, 0, "Rank Order Border Ownership"));
00061
00062 while(1) {
00063
00064 ifs->updateNext();
00065 *inputImage = ifs->readFloat();
00066 retina.update(inputImage);
00067 makeHeatmap<float>(retina.getSpikeWave(), heatmap);
00068
00069
00070 window1->drawImage(*inputImage,0,0);
00071
00072 window1->drawImage(Image<PixRGB <byte> > (*heatmap),inputImage->getWidth(), 0);
00073 }
00074 }