Перейти к содержимому
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

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


Ссылка на сообщение
Поделиться на других сайтах
Использовал OpenCV 2.1 под Builder 2010 и XE.

Спасибо!

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

img = cvLoadImage("OpenCv.jpg");

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

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

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


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

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

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

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

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


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

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

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

+1!!!

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

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

Пишет:

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
+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

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


Ссылка на сообщение
Поделиться на других сайтах
Процесс писать пока нету времени, вот работающий минимальный проект 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 при компиляции выдавало ошибки?

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


Ссылка на сообщение
Поделиться на других сайтах
Все как поставить библиотеку разобрался! Попробовал сначала на 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. я перепахал заголовочники.

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


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

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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
У меня еще студия 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) , проще один файлик к ехе файлу в папочку положить:)

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


Ссылка на сообщение
Поделиться на других сайтах
Все нормально, там просто все очень критично с путями. Я каскады засунул в одноименную папку (для чистоты :)) и обращаюсь к ним таким вот образом:

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 положил.

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

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


Ссылка на сообщение
Поделиться на других сайтах
я что то не пойму куда оно грузиться, вернее как его отобразить.

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

fastcall TForm1::TForm1(TComponent *Owner) :

TForm(Owner)

{

capture = cvCaptureFromCAM(1);

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

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

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


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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
procedure cvShowImage(name : PChar; image : PCvArr);

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Описание всех компонентов пока только в заголовочниках

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

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


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

сделал так:

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

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

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×