#include <iostream>
#include <vigra/multi_array.hxx>
#include <vigra/stdimagefunctions.hxx>
#include <vigra/multi_convolution.hxx>
#include <vigra/multi_watersheds.hxx>
using namespace vigra; 
template <class InImage, class OutImage>
void watershedSegmentation(InImage & in, OutImage & out, double scale)
{
    
    
    
    
    
    unsigned int max_region_label = 
    
    
    
    typedef typename NumericTraits<typename InImage::value_type>::RealPromote
        TmpType;
    
    
    
    
                           NumericTraits<typename OutImage::value_type>::zero());
}
int main(int argc, char ** argv)
{
    if(argc != 3)
    {
        std::cout << "Usage: " << argv[0] << " infile outfile" << std::endl;
        return 1;
    }
    try
    {
        
        double scale = 1.0;
        std::cout << "Scale for gradient calculation ? ";
        std::cin >> scale;
        if(info.isGrayscale())
        {
            int w = info.width();
            int h = info.height();
            
            
            
            
            
            watershedSegmentation(in, out, scale);
            std::cout << "Writing " << argv[2] << std::endl;
        }
        else
        {
            int w = info.width();
            int h = info.height();
            
            
            
            
            watershedSegmentation(in, out, scale);
            std::cout << "Writing " << argv[2] << std::endl;
        }
    }
    catch (std::exception & e)
    {
        std::cout << e.what() << std::endl;
        return 1;
    }
    return 0;
}