// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2012/03/20 // filename: cvimage.cpp // // author: Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: Class defining an image of kind IplImage // /*********************************************************************/ #include "cvimage.h" using std::string; namespace flair { namespace core { cvimage::cvimage(const Object* parent,uint16_t width,uint16_t height,Type::Format format,string name,bool allocate_data,int n): io_data(parent,name,n),dataType(width,height,format) { this->allocate_data=allocate_data; if(allocate_data) { switch(format) { case Type::Format::YUYV: case Type::Format::UYVY: img=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,2); break; case Type::Format::BGR: img=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,3); break; case Type::Format::GRAY: img=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1); break; default: Err("format no supported"); break; } } else { if(n>1) Err("number of samples!=1 not possible when not allocating data\n"); n=1; switch(format) { case Type::Format::YUYV: case Type::Format::UYVY: img=cvCreateImageHeader(cvSize(width,height),IPL_DEPTH_8U,2); break; case Type::Format::BGR: img=cvCreateImageHeader(cvSize(width,height),IPL_DEPTH_8U,3); break; case Type::Format::GRAY: img=cvCreateImageHeader(cvSize(width,height),IPL_DEPTH_8U,1); break; default: Err("format no supported"); break; } } SetPtrToCircle((void**)&img); if(n>1) prev=new cvimage(this,width,height,format,name,n-1); } cvimage::~cvimage() { //printf("destructeur cvimage\n"); cvReleaseImage(&img); } void cvimage::CopyDatas(char* dst) const { Warn("non implementé\n"); } } // end namespace core } // end namespace flair