#include <iostream>
#include <stdio.h>
#include "vigra/stdimage.hxx"
#include "vigra/convolution.hxx"
#include "vigra/resizeimage.hxx"
using namespace vigra; 
template <class Image>
void reduceToNextLevel(Image & in, Image & out)
{    
    
    int width = in.width();
    int height = in.height();
    
    
    int newwidth = (width + 1) / 2;
    int newheight = (height + 1) / 2;
    
    
    out.resize(newwidth, newheight);
    
    
    
    
    
                       destImage(tmpimage1), kernel1d(filter));
                       destImage(tmpimage2), kernel1d(filter));
                       
    
    
}
int main(int argc, char ** argv)
{
    if(argc != 3)
    {
        std::cout << "Usage: " << argv[0] << " infile outfile" << std::endl;
        
        return 1;
    }
    
    try
    {
        
        if(info.isGrayscale())
        {
        
            levels[0].
resize(info.width(), info.height());
           
            
            for(int i=1; i<4; ++i)
            {
                
                reduceToNextLevel(levels[i-1], levels[i]);
            }
            
        }
        else
        {
        
            levels[0].
resize(info.width(), info.height());
           
            
            for(int i=1; i<4; ++i)
            {
                
                reduceToNextLevel(levels[i-1], levels[i]);
            }
            
        }
    }
    catch (vigra::StdException & e)
    {
        std::cout << e.what() << std::endl;
        return 1;
    }
    
    return 0;
}