Библиотека myCV

Материал из roboforum.ru Wiki

Перейти к: навигация, поиск

Содержание

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

Обеспечить удобные интерфейсные функции для связи объектов OpenCV и объектов графического интерфейса Windows.

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

mycvShowImage

Показать изображение на форме. Копирует изображение из объекта IplImage библиотеки OpenCV в объект формы TImage;

mycvGetImage

Взять изображение с формы. Копирует изображение из объекта формы TImage в объект IplImage библиотеки OpenCV;

Файлы библиотеки

myCV.h

#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

myCV.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;
};