Перейти к содержимому
Compvision.ru
Smorodov

vcl компонент OpenCV

Recommended Posts

Написал я тут компонент, чтобы одно и то-же не делать а каждой программе.

Бросил на форму и нет проблем (у меня во всяком случай так :) )

Установка: архив распаковываем в директорию Projects builder-а, открыть проект OpenCV_vcl.bpk дальше, в появившемся окошке нажимаем install.

Должна появиться вкладка OpenCV и в ней компонент OpenCV.

Если меняем директорию проекта, изменить пути pragma link в OpenCV.h

Проверял на версии Builder 6 sp4

Компонент:OpenCV_vcl.rar

Пример простейшего проекта с комментариями:CV_Text.rar

Может потом допишу еще компонентиков, если надумаю каких :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

OpenCV_VCL.jpg

Новая версия (добавил cvAux) + компонент для отображения видео на форме с мышиными событиями OnMouseUp OnMouseDown OnMouseMove.

Архив здесь (компонент + простой пример): OpenCV_VCL.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для интеграции я еще слаб в коддинге на С++. А установка OpenCV и добавление библиотек к каждому новому проекту, нудное дело (

Кстате, а не пользовались такой штукой как VideoLab?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С++ Builder не получается вывести кадр на компонент TImage, нашёл пример на робофоруме но он зависает

//global

CvCapture *capture;

IplImage *frame;

CvFont font;

CvSize sz;

IplImage *scaled;


void __fastcall TForm1::Button1Click(TObject *Sender)

{

capture = NULL;

frame = NULL;

capture = cvCreateCameraCapture(0);

cvInitFont(&font, CV_FONT_HERSHEY_COMPLEX_SMALL, 1.0, 1.0);

sz.width=320; sz.height=240;

scaled=cvCreateImage(sz,IPL_DEPTH_8U,3);

frame = cvQueryFrame(capture);

cvResize(frame,scaled,CV_INTER_LINEAR);

ShowImage(Screen,scaled);

}


void __fastcall TForm1::ShowImage(TImage *bimg, IplImage *iimg)

{

byte *ptr;

long int adr;

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]; // зависает здесь

    adr=(height-1-y)*datastep;

    memcpy(ptr,rawdata+adr,datastep);

   }

  bimg->Canvas->Pixels[0][0]=0;

}

Подскажите пожалуйсто в чём может быть дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обязательно на TImage?

Если пойдет на TPanel или на TForm и т.д.

Как выводить можно посмотреть в любом примере с форума написанным на Builder.

Например здесь:

http://www.compvision.ru/forum/index.php?showtopic=2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×