Библиотека myCV — различия между версиями
=DeaD= (обсуждение | вклад) (→myCV.h) |
=DeaD= (обсуждение | вклад) (→myCV.h) |
||
| (не показано 6 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
| + | == Назначение библиотеки == | ||
| + | |||
| + | Обеспечить удобные интерфейсные функции для связи объектов OpenCV и объектов графического интерфейса Windows. | ||
| + | |||
== Функции (описание)== | == Функции (описание)== | ||
| − | + | === mycvShowImage === | |
| + | Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage; | ||
| − | + | === mycvGetImage === | |
| + | Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV; | ||
== Файлы библиотеки == | == Файлы библиотеки == | ||
=== myCV.h === | === myCV.h === | ||
| − | |||
| − | + | <source lang="cpp"> | |
| − | + | ||
| − | + | #ifndef myCVH | |
| − | + | #define myCVH | |
| − | + | //--------------------------------------------------------------------------- | |
| − | + | #include "cv.h" // includes OpenCV definitions | |
| − | + | #include "highgui.h" // includes highGUI definitions | |
| − | + | #include <ExtCtrls.hpp> | |
| − | + | ||
| − | + | void mycvShowImage(TImage *bimg, IplImage *iimg); | |
| − | + | void mycvGetImage (TImage *bimg, IplImage *iimg); | |
| − | + | //--------------------------------------------------------------------------- | |
| − | + | #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> | ||
Текущая версия на 11:39, 14 января 2008
Содержание
Назначение библиотеки
Обеспечить удобные интерфейсные функции для связи объектов OpenCV и объектов графического интерфейса Windows.
Функции (описание)
mycvShowImage
Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;
mycvGetImage
Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;
Файлы библиотеки
myCV.h
<source lang="cpp">
- ifndef myCVH
- define myCVH
//---------------------------------------------------------------------------
- include "cv.h" // includes OpenCV definitions
- include "highgui.h" // includes highGUI definitions
- include <ExtCtrls.hpp>
void mycvShowImage(TImage *bimg, IplImage *iimg); void mycvGetImage (TImage *bimg, IplImage *iimg); //---------------------------------------------------------------------------
- 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>