Библиотека myCV — различия между версиями
=DeaD= (обсуждение | вклад) (→myCV.h) |
=DeaD= (обсуждение | вклад) (→Файлы библиотеки) |
||
Строка 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> | ||
− | |||
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">
- 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>