Библиотека myCV — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(myCV.h)
 
(не показана 1 промежуточная версия этого же участника)
Строка 5: Строка 5:
 
== Функции (описание)==
 
== Функции (описание)==
  
* mycvShowImage (показать изображение на форме) - копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;
+
=== mycvShowImage ===
 +
Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;
  
* mycvGetImage (взять изображение с формы) - копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;
+
=== mycvGetImage ===
 +
Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;
  
 
== Файлы библиотеки ==
 
== Файлы библиотеки ==
  
 
=== myCV.h ===
 
=== myCV.h ===
 +
 
<source lang="cpp">
 
<source lang="cpp">
 +
 
#ifndef myCVH
 
#ifndef myCVH
 
#define myCVH
 
#define myCVH
Строка 24: Строка 28:
 
//---------------------------------------------------------------------------
 
//---------------------------------------------------------------------------
 
#endif
 
#endif
 +
 
</source>
 
</source>
  

Текущая версия на 11:39, 14 января 2008

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

Обеспечить удобные интерфейсные функции для связи объектов 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>