#include <iostream>
#include <vigra/multi_array.hxx>
#include <vigra/tensorutilities.hxx>
#include <vigra/boundarytensor.hxx>
int main(int argc, char ** argv)
{
if(argc != 2)
{
std::cout << "Usage: " << argv[0] << " infile" << std::endl;
std::cout << "(supported formats: " << impexListFormats() << ")" << std::endl;
std::cout << "creates: boundarystrength.tif, cornerstrength.tif" << std::endl;
return 1;
}
try
{
double scale;
std::cout << "Operator scale ? ";
std::cin >> scale;
{
importImage(info, in);
boundaryTensor(in, boundarytensor, scale);
}
{
importImage(info, in);
for(int b=0; b<3; ++b)
{
boundaryTensor(in.bindElementChannel(b), bandtensor, scale);
boundarytensor += bandtensor;
}
}
else
{
std::cerr << "Sorry, can only operate on gray and color images.\n";
return 1;
}
tensorTrace(boundarytensor, boundarystrength);
tensorToEdgeCorner(boundarytensor, edgeness, cornerness);
exportImage(boundarystrength,
ImageExportInfo(
"boundarystrength.tif").setPixelType(
"UINT8"));
exportImage(cornerness,
ImageExportInfo(
"cornerstrength.tif").setPixelType(
"UINT8"));
}
catch (std::exception & e)
{
std::cout << e.what() << std::endl;
return 1;
}
return 0;
}
Argument object for the function exportImage().
Definition: imageinfo.hxx:134
Argument object for the function importImage().
Definition: imageinfo.hxx:391
Main MultiArray class containing the memory management.
Definition: multi_array.hxx:2477
image import and export functions