#ifndef IMAGEFILE_H
#define IMAGEFILE_H

extern "C"
{
  #include <opencv/highgui.h>
}

namespace seemicro
{

/**
  * Liest ein Bild aus einer Datei
  * und bietet es in img zur Weiterverarbeitung an.
  * Tritt beim Bildladen ein Fehler auf, wird ein
  * leeres schwarzes RGB-Bild erzeugt.
  */
struct ImageFile : public ImageSource
{
  ImageFile(string filename)
  {
    img = cvLoadImage(filename.c_str(), 1);
    if(!img)
    {
      cerr << "Couldn't find file: " << filename << endl;
      // make dummy image
      img = cvCreateImage(cvSize(320, 200), IPL_DEPTH_8U, 3);
    }
  }

  ~ImageFile()
  {
    cvReleaseImage(&img);
  }

}; // ImageFile

} // seemicro

#endif

