Jump to content
Compvision.ru
FormatCft

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

Recommended Posts

Guest KarpovSergei

кто знает: поставил Builder6, а там какие-то траблы с хэлпом По всем самым основным компонентам и классам, F1 молчит как рыба об лед: Сами hlp на винте присутствуют, но в них, ни в одном, даже TButton нет. Кто чего подскажет?

Share this post


Link to post
Share on other sites
кто знает: поставил Builder6, а там какие-то траблы с хэлпом По всем самым основным компонентам и классам, F1 молчит как рыба об лед: Сами hlp на винте присутствуют, но в них, ни в одном, даже TButton нет. Кто чего подскажет?

Если Виста то надо ставить спец заплатку для совместимости со старым форматом хелпа.

Если XP, то обычно проблем не наблюдается.

Можно попробовать вызвать через меню.

Может просто функциональные клавиши не работают (кривой драйвер клавы), такое тоже бывает.

Share this post


Link to post
Share on other sites

В builder2009 нормально работал с OpenCV 1.1

На днях поставил OpenCV 2.0. При подключении "cv.h" компилятор выдает кучу ошибок. Причем ошибки в файле "complex" (без расширения) - функции не из простраства std, множественное определение функций и т.д. ... Ни у кого больше 2009-й билдер не ссорится с OpenCV 2.0?

Share this post


Link to post
Share on other sites

Описанный выше пример запустился нормально(C++ Builder 6, Vista), а как только попытался создать минимум и с "нуля" . пример ниже,

#include <vcl.h>

#pragma hdrstop


#include "cv.h"

#include "highgui.h"


#include "my_open_cv_unit.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"



TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

		: TForm(Owner)

{

}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)

{

	IplImage* img;

	img = cvLoadImage("1.bmp");

	cvShowImage( "Example1", img );

	cvReleaseImage( &img );

}

вылетело с ошибкой ;)

874631.gif

может подскажете, что не так? :huh:

865415.gif867463.gif

866439.gif

и настройки Project->Options выставил как в примере

Share this post


Link to post
Share on other sites
В builder2009 нормально работал с OpenCV 1.1

На днях поставил OpenCV 2.0. При подключении "cv.h" компилятор выдает кучу ошибок. Причем ошибки в файле "complex" (без расширения) - функции не из простраства std, множественное определение функций и т.д. ... Ни у кого больше 2009-й билдер не ссорится с OpenCV 2.0?

Да, есть ошибки.

Я продвинулся чуть дальше, но тоже пока не все гладко, они там с шаблонами сильно накрутили.

Попробуйте заголовки определить так:

#include <vcl.h>
#include <math.h>
#include <utility>
#include <complex>
#include "cv.h"
#include "highgui.h"[/code]

проблемы с complex исчезнут, но появятся проблемы с шаблонами, что то типа этого:

в строчке:

// transposition, inversion, per-element multiplication

MatExpr_<MatExpr_Op2_<Mat_, double, Mat_, MatOp_T_<Mat> >, Mat_> t() const;

Выдает:

[bCC32 Error] cxcore.hpp(1253): E2299 Cannot generate template specialization from 'MatExpr_Op2_<A1,A2,M,Op>'

и дальше бла бла бла про шаблоны в том же духе ;)

PS: В C++Builder 6 проблемы аналогичные.

Share this post


Link to post
Share on other sites
Да, есть ошибки.

Я продвинулся чуть дальше, но тоже пока не все гладко, они там с шаблонами сильно накрутили.

Попробуйте заголовки определить так:

#include <vcl.h>

#include <math.h>

#include <utility>

#include <complex>

#include "cv.h"

#include "highgui.h"

проблемы с complex исчезнут, но появятся проблемы с шаблонами, что то типа этого:

в строчке:

// transposition, inversion, per-element multiplication

MatExpr_<MatExpr_Op2_<Mat_, double, Mat_, MatOp_T_<Mat> >, Mat_> t() const;

Выдает:

[bCC32 Error] cxcore.hpp(1253): E2299 Cannot generate template specialization from 'MatExpr_Op2_<A1,A2,M,Op>'

и дальше бла бла бла про шаблоны в том же духе ;)

PS: В C++Builder 6 проблемы аналогичные.

В MSVS 2002 таже песня, в том же месте

Share this post


Link to post
Share on other sites
В MSVS 2002 таже песня, в том же месте

Запостил в yahoo groups: http://tech.groups.yahoo.com/group/OpenCV/message/66551

Там те-же проблемы, пока без решения.

Share this post


Link to post
Share on other sites

Из версии 2.0 они вообще все либы убрали... Их вроде с помощью CMake сделать надо, но не могу разобраться как...

Share this post


Link to post
Share on other sites
IPP существенно (в разы) ускоряющая работу OpenCV хреновина берется с сайта Intel.

Ставим интелловский компилятор Intel C Plus Plus Compiler v10.1.025

Google рулит.

IPP ставится после установки компилятора. И использует его лицензию ;)

Подключается автоматически, нужно только указать в системной переменной Path путь к директории, /bin библиотеки IPP, в самой программе ничего отдельно указывать не нужно.

Поставил IPP 6.1.1.035 (сейчас у интела эта версия выложена), но OpenCV его не видит... В переменной Path путь прописал.

Intel по этому поводу советует проверить строку "551 static const char* ipp_sfx_ia32[] = {"-6.1", "-6.0", "-5.3", "-5.2", "-5.1", "", 0 };" в файле "OpenCV\cxcore\src\cxswitcher.cpp"

У меня строка такая же. Пробовал еще добавить"-6.1.1.035" в эту строку, но и от этого толку ноль... Подскажите, что еще можно сделать?

Share this post


Link to post
Share on other sites
Из версии 2.0 они вообще все либы убрали... Их вроде с помощью CMake сделать надо, но не могу разобраться как...

CMake делает Make файл, или, например проект для VisualStudio (не сами либы).

Далее этот файл скармливается компилятору, борландовские компиляторы не переваривают то что получается и выдают ошибки. Нужно использовать или GNU или VC.

Share this post


Link to post
Share on other sites

Бинарники OpenCV 2.0 (lib - файлы) построенные в VS2008:

lib.rar

Share this post


Link to post
Share on other sites

Ни как не могу запустить программу на другом компьютере где нет среды Builder С++.

Что только не делал...

Смотрел чего не хватает через Dependency Walker все dll на месте,

И копировал все bpl, и компилировал без run time pakage. Ни как не хочет запускаться ((

Что делать?

Share this post


Link to post
Share on other sites
Ни как не могу запустить программу на другом компьютере где нет среды Builder С++.

Что только не делал...

Смотрел чего не хватает через Dependency Walker все dll на месте,

И копировал все bpl, и компилировал без run time pakage. Ни как не хочет запускаться ((

Что делать?

Перейти уже на нормальные средства разработки :)

Share this post


Link to post
Share on other sites

Какие ошибки выдает ?

Share this post


Link to post
Share on other sites

Сначала требовал bpl-ки и dll-ки. Все нашел и положил в папку с программой.

После этого уже не ругался на dll/bpl. а просто выдает 2 раза

34e4eb1fe03d.jpg

и вылетает

Cfr не разжигай религиозные войны)

Share this post


Link to post
Share on other sites
Сначала требовал bpl-ки и dll-ки. Все нашел и положил в папку с программой.

После этого уже не ругался на dll/bpl. а просто выдавал Access Violation и вылетал...

Cfr не разжигай религиозные войны)

OpenCV на целевой машине установлен стандартным образом?

Я запускал проекты с этого форума на компах без билдера, правда это была версия 1.0.

Для других не проверял. Билдеры на всех компах есть :)

Может с CodeGuard проблемы, проверьте чтобы отключен был.

И еще если возникает ошибка 0xc0150002, то для корректной работы OpenCV1.1pre1 надо установить MSVCRT 8.0 (visual c++ run time).

MSVCRT8.0

Еще можно messagebox-ами отловить место ошибки.

Share this post


Link to post
Share on other sites
OpenCV на целевой машине установлен стандартным образом?

Я запускал проекты с этого форума на компах без билдера, правда это была версия 1.0.

Может с CodeGuard проблемы, проверьте чтобы отключен был.

И еще если возникает ошибка 0xc0150002, то для корректной работы OpenCV1.1pre1 надо установить MSVCRT 8.0 (visual c++ run time).

MSVCRT8.0

OpenCV конечно не установлен... Предполагаю таскать с программой 2-3 dll-ки... Но ни как не 20 метров... ((

MSVCRT8.0 ставил, не помогло.

Share this post


Link to post
Share on other sites

У Билдера есть сетевой отладчик? Если есть, то попробуй его.

Share this post


Link to post
Share on other sites

ух.... я не думал что этот кошмар закончиться... MSVCRT8.0 помог... после перезагрузки)) Спасибо огромное)

Share this post


Link to post
Share on other sites

В папке C:\Program Files\OpenCV\otherlibs\_graphics\libC:\Program Files\OpenCV\otherlibs\_graphics\lib, есть странные библиотеки с расширением *.a, к примеру: libavcodec.a. С помощью LibConverter выложенного здесь, конвертировать не получилось. Выдает ошибку:

***********************

Файл:OMFlibavcodec.lib

ERROR: COFF error: libavcodec.lib

(coffread.cpp, 1313) : index into non-existant long names table

COFF to OMF Converter Version 1.0.0.74 Copyright © 1999, 2000 Inprise Corporation

Конвертация файла окончена.

***********************

Что делать)?

Share this post


Link to post
Share on other sites
В папке C:\Program Files\OpenCV\otherlibs\_graphics\libC:\Program Files\OpenCV\otherlibs\_graphics\lib, есть странные библиотеки с расширением *.a, к примеру: libavcodec.a. С помощью LibConverter выложенного здесь, конвертировать не получилось. Выдает ошибку:

***********************

Файл:OMFlibavcodec.lib

ERROR: COFF error: libavcodec.lib

(coffread.cpp, 1313) : index into non-existant long names table

COFF to OMF Converter Version 1.0.0.74 Copyright © 1999, 2000 Inprise Corporation

Конвертация файла окончена.

***********************

Что делать)?

Так это просто GCC-шные библиотеки. Их не нужно конвертировать. И подключать к Builder или к VC не нужно. Для этих компиляторов нужны только lib.

Share this post


Link to post
Share on other sites
Так это просто GCC-шные библиотеки. Их не нужно конвертировать. И подключать к Builder или к VC не нужно. Для этих компиляторов нужны только lib.

ясно... эти бибилиотеки настойчиво требует ffopencv.h...

Share this post


Link to post
Share on other sites

О подключении версии 2.0 к билдеру

Запостил в yahoo groups: http://tech.groups.yahoo.com/group/OpenCV/message/66551

Там те-же проблемы, пока без решения.

Получен 1 ответ по теме - вот содержание:

Mat_ is tamplate class. so add type name <_Tp>.

Mat_ => Mat_<_Tp>

Пока не успел проверить, к концу недели попробую (если кто не опередит :) ).

====

Заменяем в строках с ошибками "Mat_" на "Mat_<_Tp>".

Попробовал, проблемы с шаблонами это решает (остается много других ошибок, но они не сложно исправляются).

Перспектива есть.

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.

×