#include <iostream>
#include <functional>
#include "vigra/stdimage.hxx"
#include "vigra/combineimages.hxx"
#include "vigra/tensorutilities.hxx"
#include "vigra/boundarytensor.hxx"
using namespace vigra;
int main(int argc, char ** argv)
{
if(argc != 2)
{
std::cout << "Usage: " << argv[0] << " infile" << std::endl;
std::cout << "creates: boundarystrength.tif, cornerstrength.tif" << std::endl;
return 1;
}
try
{
double scale;
std::cout << "Operator scale ? ";
std::cin >> scale;
{
}
{
for(int b=0; b<3; ++b)
{
boundaryTensor(srcImageRange(in, band), destImage(bandtensor), scale);
destImage(boundarytensor),
std::plus<FVector3Image::value_type>());
}
}
else
{
std::cerr << "Sorry, can only operate on gray and color images.\n";
return 1;
}
FImage boundarystrength(w, h), cornerness(w, h);
tensorTrace(srcImageRange(boundarytensor), destImage(boundarystrength));
tensorToEdgeCorner(srcImageRange(boundarytensor), destImage(edgeness), destImage(cornerness));
}
catch (std::exception & e)
{
std::cout << e.what() << std::endl;
return 1;
}
return 0;
}