Форум программистов, компьютерный форум, киберфорум
C++: OpenCV
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/47: Рейтинг темы: голосов - 47, средняя оценка - 5.00
24 / 14 / 2
Регистрация: 20.02.2010
Сообщений: 181
1

C++ Builder XE3 & OpenCV

29.11.2012, 17:06. Просмотров 8749. Ответов 13
Метки нет (Все метки)


Всем привет. Объясните пожалуйста как прикручивать OpenCV к билдеру XE3. Прочёл много примеров, но не получается прикрутить нормально. И сразу скажите для какой версии OpenCV. Желательно подробней, думаю, хорошее объяснение будет полезно для многих.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2012, 17:06
Ответы с готовыми решениями:

Rad studio XE3 && OpenGL
скачал отсюда библиотеки http://www.onlinedisk.ru/file/620466/ glut.dll and glut32.dll скопировал...

C++Builder XE3
Приветствую ребята. Если кто знает где взять портабельную версию C++Builder XE3 ? Буду...

Литература по C++Builder XE3
Здравствуйте, подскажите пожалуйста хорошие книги (ну или другие источники) по C++Builder XE3, RED...

Программа на С++ Builder XE3
Подскажите пожалуйста литературу где будет понятно объяснено взаимодействие компонентов на форме и...

13
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
29.11.2012, 18:09 2
Нашел инсталятор для VC++ установил...

1. В общем там много lib а они конечно под VC++ т.е. не совместимы с Builder.
2. При подключении хедера к Builder он начал ругаться на него.

Оба варианта могут не дать результата...
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
29.11.2012, 19:07 3
https://www.cyberforum.ru/post2829205.html
0
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
29.11.2012, 20:05 4
http://locv.ru/wiki/%D0%A3%D1%... _Windows_7

Добавлено через 36 минут
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Как установить библиотеку OpenCV в C++ Builder
Ну у меня на в Builder2009 выдает на ошибки хедерах

core.hpp
C++
1
FileNode operator ->() const;
[BCC32 Error] core.hpp(3885): E2028 operator-> must return a pointer or a class
Добавлено через 20 минут
Нашел вроде такое должно помочь если объявить
C++
1
2
#define _STLP_NO_CSTD_FUNCTION_IMPORTS
#define _FM_NO_REMAP
Но у меня другие ошибки лезут

Добавлено через 1 минуту
operations.hpp
C++
1
2
3
4
5
6
7
8
template<typename _Tp, int m, int n> inline
Matx<_Tp, MIN(m,n), 1> Matx<_Tp, m, n>::diag() const
{
    diag_type d;
    for( int i = 0; i < MIN(m, n); i++ )
        d.val[i] = val[i*n + i];
    return d;
}
[BCC32 Error] operations.hpp(442): E2434 Template declaration missing template parameters ('template<...>')
[BCC32 Error] operations.hpp(443): E2316 'Matx<_Tp,m,n>::diag() const' is not a member of 'Matx<_Tp,m,n>'
[BCC32 Error] operations.hpp(1765): E2034 Cannot convert 'const Point2f' to 'CvPoint2D32f'
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
30.11.2012, 23:57 5
У меня вот как получилось его задействовать в билдере XE (на других не проверял):
1) Скачал и установил OpenCV-2.4.3.exe (например сюда: d:\OpenCV(extracted)\)
2) Зашел в папку d:\OpenCV(extracted)\opencv\build\x86\vc9\bin\, создал и запустил в ней батник :
mkdir borland
for %%F in (*.dll) do implib -a borland\%%~nF.lib %%F
pause
Появились .lib файлы в подпапке borland
3) В своем проекте создал подпапку lib и закинул в нее полученные .lib файлы (см. пункт2)
4) Подключил .lib файлы к себе в проект (Project->Add to project)
5) Положил dll-ки рядом с exe (также можно добавить в системную переменную PATH путь до d:\OpenCV(extracted)\opencv\build\x86\vc9\bin\
либо скопировать dll-ки в папку system32)
6) Скопировал папку d:\OpenCV(extracted)\opencv\build\include\opencv2\ к себе в проект
7) И потом скомпилировал код, например такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// ---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <JPEG.hpp>
#include <PNGimage.hpp>
 
 
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/imgproc/imgproc_c.h"
 
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button_OpenClick(TObject *Sender)
{
    if (OpenDialog1->Execute())
    {
        AnsiString sExt = ExtractFileExt(OpenDialog1->FileName).LowerCase();
        if ( sExt == ".jpeg" || sExt == ".jpg" )
        {
            TJPEGImage *jpg = new TJPEGImage;
            jpg->LoadFromFile(OpenDialog1->FileName);
            Image1->Picture->Bitmap->Assign(jpg);
            delete jpg;
        }
        else if ( sExt == ".png" )
        {
            TPngImage *png = new TPngImage;
            png->LoadFromFile(OpenDialog1->FileName);
            Image1->Picture->Bitmap->Assign(png);
            delete png;
        }
        else if ( sExt == ".bmp" )
        {
            Image1->Picture->Bitmap->LoadFromFile(OpenDialog1->FileName);
        }
    }
}
// ---------------------------------------------------------------------------
 
void __fastcall TForm1::Button_ConvertClick(TObject *Sender)
{
    // Convert src to gray image
    IplImage* src = cvLoadImage(AnsiString(OpenDialog1->FileName).c_str(), 1);
    IplImage* imageInGray = cvCreateImage(cvSize(src->width, src->height),
        IPL_DEPTH_8U, 1);
    cvCvtColor(src, imageInGray, CV_BGR2GRAY);
 
    // Save and load image
    cvSaveImage("C:\\1.bmp", imageInGray);
    Image1->Picture->LoadFromFile("C:\\1.bmp");
 
    // Release images
    cvReleaseImage(&src);
    cvReleaseImage(&imageInGray);
}
// ---------------------------------------------------------------------------
3
Вложения
Тип файла: rar OpenCV test.rar (2.05 Мб, 253 просмотров)
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
01.12.2012, 00:26 6
C++
1
2
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/imgproc/imgproc_c.h"
Ну так это только Си возможности... а вы попробуйте #include <cv.hpp> подключить там где плюсовые классы
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
01.12.2012, 01:18 7
Цитата Сообщение от Avazart Посмотреть сообщение
Ну так это только Си возможности... а вы попробуйте #include <cv.hpp> подключить там где плюсовые классы
Для начала хотя бы такие Чтобы были все, нужно собрать OpenCV под билдер .
Пытаюсь под cygwin собрать, но лезут разные ошибки, которые хз как исправлять.
0
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
01.12.2012, 01:21 8
Цитата Сообщение от kzru_hunter Посмотреть сообщение
Для начала хотя бы такие Чтобы были все, нужно собрать OpenCV под билдер .
Да ни скомпилится оно никак, говорю же ошибка в хедерах

Нужно их править под Builder
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
01.12.2012, 01:30 9
Цитата Сообщение от Avazart Посмотреть сообщение
Да ни скомпилится оно никак
у меня 20% скомпилилось (при этом в двух местах были исправлены ошибки), причем ошибки отличаются от тех, что приведены выше.
0
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
01.12.2012, 01:36 10
Ну 20% не бывает такого... либо скомпилилось либо нет ...

Я пропустил пару ошибок по тому как их подправил..

Если cv прикручивается к Builder6 значит есть вероятность что ошибки в только хедерах, а значит нет необходимости перекомпилировать исходиники.
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
01.12.2012, 02:01 11
Цитата Сообщение от Avazart Посмотреть сообщение
Если cv прикручивается к Builder6
это потому что:
Цитата Сообщение от Avazart Посмотреть сообщение
Ну так это только Си возможности
0
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
01.12.2012, 02:27 12
Ну если классы cv под Builder6 тоже не идут, то перекопиливать и не факт что получится...
0
1113 / 790 / 100
Регистрация: 01.02.2011
Сообщений: 1,845
Записей в блоге: 1
01.12.2012, 12:35 13
Почти ничего из того, что находил в инете, не компилится на билдере. Такими макарами что-то серьезное не создашь.
Придется переходить на MSVC

Добавлено через 8 минут
Хотел попробовать модуль opencv_objdetect, но получил фиг - полностью на классах сделан.
opencv_objdetect — обнаружение объектов на изображении (нахождение лиц с помощью алгоритма Виолы-Джонса (англ.), распознавание людей HOG и т. д.).
0
Эксперт С++
8354 / 6101 / 610
Регистрация: 10.12.2010
Сообщений: 28,389
Записей в блоге: 29
01.12.2012, 20:30 14
Мда пишут либы восновном под VC++

Походу нужно переходить на Qt
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2012, 20:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Настройки проекта в С++ Builder XE3
Здравствуйте! подскажите пожалуйста какие настройки необходимо выставить проекту в C++ Builder XE3...

Импорт из Excel (С++ Builder XE3)
после нажатия кнопки выдает сообщение к сожалению нам не удалось найти файл ИСТИНА.xlsx void...

Регулярные выражения C++ Builder XE3
Помогите, пожалуйста. Перечитал уже кучу форумов и советов. Необходимо в StringList проверить i-тую...

Определить пинг сервера в С++ Builder XE3
всем привет, нужно определить время ответа сервера в С++ билдере, подскажите компонент и метод если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.