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

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(myCV.h)
(myCV.h)
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
 +
== Назначение библиотеки ==
 +
 +
Обеспечить удобные интерфейсные функции для связи объектов OpenCV и объектов графического интерфейса Windows.
 +
 
== Функции (описание)==
 
== Функции (описание)==
  
* mycvShowImage (показать изображение на форме) - копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;
+
=== mycvShowImage ===
 +
Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;
  
* mycvGetImage (взять изображение с формы) - копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;
+
=== mycvGetImage ===
 +
Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;
  
 
== Файлы библиотеки ==
 
== Файлы библиотеки ==
  
 
=== myCV.h ===
 
=== myCV.h ===
<code language="c++">
 
  
//---------------------------------------------------------------------------
+
<source lang="cpp">
#ifndef myCVH
+
 
#define myCVH
+
#ifndef myCVH
//---------------------------------------------------------------------------
+
#define myCVH
#include "cv.h"                                  // includes OpenCV definitions
+
//---------------------------------------------------------------------------
#include "highgui.h"                            // includes highGUI definitions
+
#include "cv.h"                                  // includes OpenCV definitions
#include <ExtCtrls.hpp>
+
#include "highgui.h"                            // includes highGUI definitions
 
+
#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);
 +
  };
 +
};
  
</code>
+
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>

Текущая версия на 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>