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

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

Recommended Posts

Гость KarpovSergei

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

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


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

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

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

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

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

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


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

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

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

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


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

Описанный выше пример запустился нормально(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 выставил как в примере

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


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

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


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

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

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

#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 таже песня, в том же месте

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


Ссылка на сообщение
Поделиться на других сайтах
В MSVS 2002 таже песня, в том же месте

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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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" в эту строку, но и от этого толку ноль... Подскажите, что еще можно сделать?

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


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

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

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

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


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

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

lib.rar

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


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

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

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

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

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

Что делать?

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


Ссылка на сообщение
Поделиться на других сайтах
Ни как не могу запустить программу на другом компьютере где нет среды Builder С++.

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

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

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

Что делать?

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

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


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

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

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


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

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

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

34e4eb1fe03d.jpg

и вылетает

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

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


Ссылка на сообщение
Поделиться на других сайтах
Сначала требовал bpl-ки и dll-ки. Все нашел и положил в папку с программой.

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

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

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

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

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

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

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

MSVCRT8.0

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

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


Ссылка на сообщение
Поделиться на других сайтах
OpenCV на целевой машине установлен стандартным образом?

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

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

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

MSVCRT8.0

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

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

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


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

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

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


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

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

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


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

В папке 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

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

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

Что делать)?

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


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

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


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

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

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


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

О подключении версии 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>".

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

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

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


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

Пара проектов на Дельфи: http://gidesa.altervista.org/camshiftdemo.php

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×