Jump to content
Compvision.ru
FormatCft

Как прикрутить OpenCV к билдеру?

Recommended Posts

Здравствуйте уважаемые форумчане!

1.Вопрос будет ли работать библиотека opencv 2.0 на:

Borland C++ Builder 2009,

Borland C++ Builder 2010,

Borland C++ Builder XE?

Использовал OpenCV 2.1 под Builder 2010 и XE. Проблема была только одна. Не получилось заставить Builder компилировать .hpp заголовки, которые входят в OpenCV. (cv.hpp, highgui.hpp и т.п). Если отказаться от их использования, тогда других проблем нету.

На счет сравнения версий C++ Builder, ИМХО это вопрос слишком объемный. В каждой версии есть свои улучшения.

Подробности можно здесь посмотреть. C++Builder XE Feature Matrix

Share this post


Link to post
Share on other sites
Использовал OpenCV 2.1 под Builder 2010 и XE.

Спасибо!

Share this post


Link to post
Share on other sites
Вечер добрый. глянул ту ссылку. оказалась очень полезной.

поставил компоненты и сделал 1 проект. запустил- и о чудо- о великий и могучий синий экран. в чем проблема?

делал все по инструкции. и тут чудо такое.

пробовал тестить на виртуалке- так не видит камеру, с дровами как всегда на хр проблема)))

Может сначала картинки из файла попробовать загрузить?

Share this post


Link to post
Share on other sites

может и стоит.

я же говорю, начал делать по мануалу, а там первый проект именно с вебкой))

загрузить- куда именно вы имеете в виду?

Share this post


Link to post
Share on other sites
может и стоит.

я же говорю, начал делать по мануалу, а там первый проект именно с вебкой))

загрузить- куда именно вы имеете в виду?

img = cvLoadImage("OpenCv.jpg");

Вот здесь пример на Builder:

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

Share this post


Link to post
Share on other sites

Уважаемые форумчане, если не сложно, то по шагам распишите как подключить компонент opencv 2.1 к С++Builder 6.

Если несложно, то поподробнее, т.е. с указанием какие пункты меню в ВСВ надо выбирать, что писать в полях, куда какие пути прописывать и т.д, т.к. я в ВСВ еще ни разу не подключал библиотек и компонентов. Интересует процесс подключения именно версии 2.1.

Заранее благодарен!

Share this post


Link to post
Share on other sites
Уважаемые форумчане, если не сложно, то по шагам распишите как подключить компонент opencv 2.1 к С++Builder 6.

Если несложно, то поподробнее, т.е. с указанием какие пункты меню в ВСВ надо выбирать, что писать в полях, куда какие пути прописывать и т.д, т.к. я в ВСВ еще ни разу не подключал библиотек и компонентов. Интересует процесс подключения именно версии 2.1.

Заранее благодарен!

+1!!!

Сконвертировал библиотеки, подключил их, заголовки, добавил dll-ки.

cvShowImage() работает, а CvCapture с помощью cvCaptureFromCAM() не могу проинициализоровать.

Пишет:

[Linker Error] Unresolved external '_cvCaptureFromCAM' referenced from (...),

хотя вроде на месте всё :)

А cvCreateCameraCapture() вообще не видит, хотя в VS2008 она работала прекрасно.

Share this post


Link to post
Share on other sites
+1!!!

Сконвертировал библиотеки, подключил их, заголовки, добавил dll-ки.

cvShowImage() работает, а CvCapture с помощью cvCaptureFromCAM() не могу проинициализоровать.

Пишет:

[Linker Error] Unresolved external '_cvCaptureFromCAM' referenced from (...),

хотя вроде на месте всё :)

А cvCreateCameraCapture() вообще не видит, хотя в VS2008 она работала прекрасно.

Процесс писать пока нету времени, вот работающий минимальный проект Opencv 2.1 + Builder 6:

Empty_proj.rar

и мои include из opencv2.1/include/

include.rar

Share this post


Link to post
Share on other sites
Процесс писать пока нету времени, вот работающий минимальный проект Opencv 2.1 + Builder 6:

Empty_proj.rar

и мои include из opencv2.1/include/

include.rar

Все как поставить библиотеку разобрался! Попробовал сначала на opencv 1.1 - все работает!

Сейчас попробовал подключить opencv 2.1 с вашим примером и include - все ОК - компилируется без ошибок, создается ехе файл,

но при запуске ехе файла, полученного из вашего проекта, выдается сообщение:

"Ошибка при инициализации приложения (0хс150002). Для выхода из приложения нажмите кнопку Ок" - я так понимаю потому что программа ничего не выполняет, а обрабатывает простой? Или я неправ? Если неправ, то как с этим бороться?

Да, кстати, есть ли рабочие примеры захвата видео для версии opencv 2.1?

Кстати, а почему с вашими include заработало, а с родными include из папки установленной opencv 2.1 при компиляции выдавало ошибки?

Share this post


Link to post
Share on other sites
Все как поставить библиотеку разобрался! Попробовал сначала на opencv 1.1 - все работает!

Сейчас попробовал подключить opencv 2.1 с вашим примером и include - все ОК - компилируется без ошибок, создается ехе файл,

но при запуске ехе файла, полученного из вашего проекта, выдается сообщение:

"Ошибка при инициализации приложения (0хс150002). Для выхода из приложения нажмите кнопку Ок" - я так понимаю потому что программа ничего не выполняет, а обрабатывает простой? Или я неправ? Если неправ, то как с этим бороться?

Да, кстати, есть ли рабочие примеры захвата видео для версии opencv 2.1?

Кстати, а почему с вашими include заработало, а с родными include из папки установленной opencv 2.1 при компиляции выдавало ошибки?

1. По поводу (0хс150002) - попробуйте поставить MSVCR 8.0, может помочь, но помогает не всегда.

2. Это и есть пример с захватом видео.

3. я перепахал заголовочники.

Share this post


Link to post
Share on other sites
1. По поводу (0хс150002) - попробуйте поставить MSVCR 8.0, может помочь, но помогает не всегда.

2. Это и есть пример с захватом видео.

3. я перепахал заголовочники.

Спасибо! Буду пробовать.

Share this post


Link to post
Share on other sites
1. По поводу (0хс150002) - попробуйте поставить MSVCR 8.0, может помочь, но помогает не всегда.

Скачал MSVCR80.dll. Заменил текущий файл в папке вашего проекта (там был файл 06 года, я скопировал файл 07 года). Та-же ошибка!!!

Какие еще пути решения?

Share this post


Link to post
Share on other sites
Скачал MSVCR80.dll

У меня еще студия 2008 установлена , так что если не заработает можно попробовать поставить еще MSVCRT 9.0

Share this post


Link to post
Share on other sites

я что то не пойму куда оно грузиться, вернее как его отобразить.

Если не трудно, распишите плиз алгоритм работы. че за чем грузить.

с вижнлаб получилось- нет смертника, но по вашей ссылке нашел хедеры и пытаюсь что то сделать. Пока что не могу понять "идеологию" :)

Share this post


Link to post
Share on other sites
У меня еще студия 2008 установлена , так что если не заработает можно попробовать поставить еще MSVCRT 9.0

Помогла установка Microsoft Visual C++ 2008 Redistributable Package (x86)

http://www.microsoft.com/downloads/en/deta...;displaylang=en

Сообщение об ошибке пропало - программа запустилась. В открывшейся проге в левом верхнем углу - черный экран, видимо там должно появляться изображение - в меню ставлю галку на "камера" - ничего не появляется, жму пункт меню "открыть" - никакого диалога не появляется. Это из-за того, что прога недописана или у меня не работает по какой-то причине? Если второе, то каково решение?

P.S. Если несложно выложите файл msvcrt90.dll, если он у вас есть, а то инет перекопал, а ссылок на скачку именно этого файла не нашел. Просто неохота с каждым приложение вкладывать Microsoft Visual C++ 2008 Redistributable Package (x86) , проще один файлик к ехе файлу в папочку положить:)

Share this post


Link to post
Share on other sites
Все нормально, там просто все очень критично с путями. Я каскады засунул в одноименную папку (для чистоты :)) и обращаюсь к ним таким вот образом:

c_path := ExtractFilePath(ParamStr(0))+'cascades\';

f1 := c_path+'haarcascade_frontalface_alt.xml';

file1 := PChar(f1);

cascade_f := cvLoad(file1,0,0,0);

Вот, если кому интересно - проэкт на делфи, который находит лица, глаза, нос и рот.

Напоминаю: для успешной работы в папке должна быть бибилиотека VCOpenCV.dll

а у меня этот проект не работает. когда жму вторую кнопку сразу AV. на строке s.width := img.width;

VCopenCV.dll положил.

что это может быть?

Share this post


Link to post
Share on other sites
я что то не пойму куда оно грузиться, вернее как его отобразить.

1) cvNamedWindow("opencv", 1); //делаем окно

2) IplImage* img = cvLoadImage("OpenCv.jpg"); // открываем картинку

3) cvShowImage( "opencv", img ); // отображаем в окно то, что загрузили

4) cvReleaseImage(&img); // освобождаем ресурсы

// тут ждем нажатия чего-либо, так как далее окно закрывается.

5) cvDestroyWindow( "opencv" ); // убиваем окно

Share this post


Link to post
Share on other sites

procedure cvShowImage(name : PChar; image : PCvArr);

передавать надо не img а что то другое, что?

Share this post


Link to post
Share on other sites

Там где черный экран - это изображение с камеры, кнопки и менюшки отключены - это пустышка от предыдущего проекта.

Камеру он значит находит, иначе была бы просто Panel. Трансляция видео должна начинаться сразу.

Похожие файлы с моей системы (win/system32):pack.rar

а вот вообще все msvc*.dll файлы из моего system32: msvcr_.rar

Share this post


Link to post
Share on other sites
Там где черный экран - это изображение с камеры, кнопки и менюшки отключены - это пустышка от предыдущего проекта.

Камеру он значит находит, иначе была бы просто Panel. Трансляция видео должна начинаться сразу.

Спасибо за файлы - гляну. Проблему с черным экраном решил. В блоке:

fastcall TForm1::TForm1(TComponent *Owner) :

TForm(Owner)

{

capture = cvCaptureFromCAM(1);

заменил "0" на "1" и после ссоздания exe все заработало - веб камеру видит - изображение захватывает!

Вопрос: где можно найти описание ВСЕХ компонент и их функций библиотеки OPENCV2.1? Интересует описание как на аглицком, так и на русском.Особенно на последнем:)

Share this post


Link to post
Share on other sites

Описание всех компонентов пока только в заголовочниках :), много у них на сайте : http://opencv.willowgarage.com/documentation/index.html

последняя версия документации у них на SVN:

https://code.ros.org/svn/opencv/trunk/opencv

Share this post


Link to post
Share on other sites
procedure cvShowImage(name : PChar; image : PCvArr);

передавать надо не img а что то другое, что?

Ей надо передавать opencv-шный IplImage возможно его (img) нужно привести к типу PCvArr - указатель на opencv-шный массив.

Share this post


Link to post
Share on other sites
Описание всех компонентов пока только в заголовочниках

Спасибо за помощь в целом! Теперь засяду разбираться с этим хитрым зверем!

Share this post


Link to post
Share on other sites

сделал так:

procedure TForm11.Button1Click(Sender: TObject);

var

  img: PIplImage;

  a: PCvArr;

begin

  cvNamedWindow('OpenCV 2', 1);

  img:= cvLoadImage(PWideChar('lena.jpg'), CV_LOAD_IMAGE_ANYCOLOR);

  a:= @img;

  cvShowImage('OpenCV 2', a);

end;

но вылазит AV. скрин: http://dl.dropbox.com/u/8382381/screen%20OCV%201.jpg

я так понимаю это что не так с либами?

Share this post


Link to post
Share on other sites

вообще любое обращение к img вызывает AV

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×