Библиотека myCV

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск

Назначение библиотеки

Обеспечить удобные интерфейсные функции для связи объектов OpenCV и объектов графического интерфейса Windows.

Функции (описание)

mycvShowImage

Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;

mycvGetImage

Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;

Файлы библиотеки

myCV.h

<source lang="cpp">

  1. ifndef myCVH
  2. define myCVH

//---------------------------------------------------------------------------

  1. include "cv.h" // includes OpenCV definitions
  2. include "highgui.h" // includes highGUI definitions
  3. include <ExtCtrls.hpp>

void mycvShowImage(TImage *bimg, IplImage *iimg); void mycvGetImage (TImage *bimg, IplImage *iimg); //---------------------------------------------------------------------------

  1. endif

</source>

myCV.cpp

<source lang="cpp">

  1. pragma hdrstop
  2. include "myCV.h"
  3. pragma package(smart_init)

void mycvGetImage(TImage *bimg, IplImage *iimg){

 byte *ptr;
 long int datastep=iimg->widthStep;
 long int height=iimg->height;
 char *rawdata=iimg->imageDataOrigin;
 for(int y=0; y<height; y++){
   ptr = (byte *) bimg->Picture->Bitmap->ScanLine[y];
   long int adr=(height-1-y)*datastep;
   memcpy(rawdata+adr,ptr,datastep);
 };

};

void mycvShowImage(TImage *bimg, IplImage *iimg){

 byte *ptr;
 long int datastep=iimg->widthStep;
 long int height=iimg->height;
 char *rawdata=iimg->imageDataOrigin;
 for(int y=0; y<height; y++){
   ptr = (byte *) bimg->Picture->Bitmap->ScanLine[y];
   long int adr=(height-1-y)*datastep;
   memcpy(ptr,rawdata+adr,datastep);
 };
 bimg->Canvas->Pixels[0][0]=0;

}; </source>