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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(myCV.h)
(Файлы библиотеки)
Строка 9: Строка 9:
 
=== myCV.h ===
 
=== myCV.h ===
 
<source lang="cpp">
 
<source lang="cpp">
//---------------------------------------------------------------------------
 
 
#ifndef myCVH
 
#ifndef myCVH
 
#define myCVH
 
#define myCVH
Строка 17: Строка 16:
 
#include <ExtCtrls.hpp>
 
#include <ExtCtrls.hpp>
  
long int modul(long int a);
 
 
void mycvShowImage(TImage *bimg, IplImage *iimg);
 
void mycvShowImage(TImage *bimg, IplImage *iimg);
 
void mycvGetImage (TImage *bimg, IplImage *iimg);
 
void mycvGetImage (TImage *bimg, IplImage *iimg);
 
//---------------------------------------------------------------------------
 
//---------------------------------------------------------------------------
 
#endif
 
#endif
 +
</source>
 +
 +
=== myCV.cpp ===
 +
 +
<source lang="cpp">
 +
#pragma hdrstop
 +
#include "myCV.h"
 +
#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>
 
</source>

Версия 16:16, 13 января 2008

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

  • 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>