Opencv+eclipse+mingw

  • Автор темы skysun
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

skysun

#1
Не могу отбилдить OpenVC с помощью mingw.
точнее отбилдить получилось только вывалило кучу warnings.
Ну думаю фиг с ним попробую так. Пиши пример

C++:
#include <cv.h>
#include <highgui.h>

int main( int argc, char** argv )
{
// задаём высоту и ширину картинки
int height = 620;
int width = 440;
// задаём точку для вывода текста
CvPoint pt = cvPoint( height/4, width/2 );
// Создаёи 8-битную, 3-канальную картинку
IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3);
// заливаем картинку чёрным цветом
cvSet(hw,cvScalar(0,0,0));
// инициализация шрифта
CvFont font;
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA);
// используя шрифт выводим на картинку текст
cvPutText(hw, "OpenCV Step By Step", pt, &font, CV_RGB(150, 0, 150) );

// создаём окошко
cvNamedWindow("Hello World", 0);
// показываем картинку в созданном окне
cvShowImage("Hello World", hw);
// ждём нажатия клавиши
cvWaitKey(50000);

// освобождаем ресурсы
cvReleaseImage(&hw);
cvDestroyWindow("Hello World");
return 0;
}
появляется окошко и прога сразу вываливается!!!
3 дня уже бьюсь - что делать?

http://opencv.willowgarage.com/wiki/InstallGuide и http://tech.dir.groups.yahoo.com/group/OpenCV/message/74105 уже видел
 
S

skysun

#3
Да вот они и на всякий случай прикреплю лог сборки.

../../3rdparty/lib/libflann.a(flann.obj): предупреждение: повторяющийся раздел `.rdata$_ZTVN5flann11IndexParamsE[vtable for flann::IndexParams]' имеет другой размер OpenCV-Release@release C/C++ Problem

замечание: this is the location of the previous definition OpenCV-Release@release line 572, external location: C:\OpenCV2.1\interfaces\ffopencv\ffopencv.cpp C/C++ Problem

предупреждение: 'AVFormatContext* av_alloc_format_context()' is deprecated (declared at C:/OpenCV2.1/3rdparty/include/ffmpeg_/avformat.h:873) OpenCV-Release@release line 1233, external location:
C:\OpenCV2.1\src\highgui\cvcap_ffmpeg.cpp C/C++ Problem

предупреждение: 'comInitCount' определена, но нигде не используется OpenCV-Release@release line 174, external location: C:\OpenCV2.1\3rdparty\include\videoinput.h C/C++ Problem

предупреждение: 'dv' may be used uninitialized in this function OpenCV-Release@release line 99, external location: C:\OpenCV2.1\3rdparty\libtiff\tif_dirread.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 117, external location: C:\OpenCV2.1\3rdparty\libjpeg\jcmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 162, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 203, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 243, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 247, external location: C:\OpenCV2.1\3rdparty\libjpeg\jcmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 272, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 309, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 349, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 389, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 478, external location: C:\OpenCV2.1\3rdparty\libjpeg\jdmainct.c C/C++ Problem
предупреждение: 'main' обычно является функцией OpenCV-Release@release line 71, external location: C:\OpenCV2.1\3rdparty\libjpeg\jcmainct.c C/C++ Problem
предупреждение: 'origin' may be used uninitialized in this function OpenCV-Release@release line 114, external location: C:\OpenCV2.1\3rdparty\libtiff\tif_stream.cxx C/C++ Problem
предупреждение: 'tmp' may be used uninitialized in this function OpenCV-Release@release line 897, external location: C:\OpenCV2.1\3rdparty\libjasper\jpc_cs.c C/C++ Problem
предупреждение: 'tmp' may be used uninitialized in this function OpenCV-Release@release line 961, external location: C:\OpenCV2.1\3rdparty\libjasper\jpc_cs.c C/C++ Problem
предупреждение: 'verbose' определена, но нигде не используется OpenCV-Release@release line 118, external location: C:\OpenCV2.1\3rdparty\include\videoinput.h C/C++ Problem
предупреждение: "__STDC_CONSTANT_MACROS" redefined OpenCV-Release@release line 53, external location: C:\OpenCV2.1\src\highgui\cvcap_ffmpeg.cpp C/C++ Problem
предупреждение: array subscript is above array bounds OpenCV-Release@release line 1080, external location: C:\OpenCV2.1\include\opencv\cxoperations.hpp C/C++ Problem
предупреждение: assuming signed overflow does not occur when assuming that (X + c) >= X is always true OpenCV-Release@release line 2157, external location: C:\OpenCV2.1\3rdparty\libjasper\jpc_dec.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_FLIP_H' not handled in switch OpenCV-Release@release line 1305, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_FLIP_V' not handled in switch OpenCV-Release@release line 1305, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_NONE' not handled in switch OpenCV-Release@release line 1305, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_NONE' not handled in switch OpenCV-Release@release line 1431, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_ROT_180' not handled in switch OpenCV-Release@release line 1305, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: enumeration value 'JXFORM_TRANSPOSE' not handled in switch OpenCV-Release@release line 1431, external location: C:\OpenCV2.1\3rdparty\libjpeg\transupp.c C/C++ Problem
предупреждение: passing NULL to non-pointer argument 1 of 'cv::AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t) [with _Tp = _CvTrianAttr*, unsigned int fixed_size = 1032u, size_t = unsigned int]' OpenCV-Release@release line 702, external location: C:\OpenCV2.1\src\cv\cvcontourtree.cpp C/C++ Problem
предупреждение: passing NULL to non-pointer argument 1 of 'cv::AutoBuffer<_Tp, fixed_size>::AutoBuffer(size_t) [with _Tp = int, unsigned int fixed_size = 1032u, size_t = unsigned int]' OpenCV-Release@release line 703, external location: C:\OpenCV2.1\src\cv\cvcontourtree.cpp C/C++ Problem
предупреждение: suggest parentheses around '&&' within '||' OpenCV-Release@release line 431, external location: C:\OpenCV2.1\src\ml\mlknearest.cpp C/C++ Problem
предупреждение: доступ по указателю с приведением типа нарушает правила перекрытия объектов в памяти OpenCV-Release@release line 1042, external location: C:\OpenCV2.1\3rdparty\libtiff\tif_dirread.c C/C++ Problem
предупреждение: доступ по указателю с приведением типа нарушает правила перекрытия объектов в памяти OpenCV-Release@release line 824, external location: C:\OpenCV2.1\tests\cv\src\aconvhull.cpp C/C++ Problem
предупреждение: несовместимая неявная декларация внутренней функции 'exit' OpenCV-Release@release line 78, external location: C:\OpenCV2.1\3rdparty\libjpeg\jerror.c C/C++ Problem
предупреждение: неявная декларация функции 'exit' OpenCV-Release@release line 78, external location: C:\OpenCV2.1\3rdparty\libjpeg\jerror.c C/C++ Problem
предупреждение: операция над '(((CvPriorityQueueFloat*)this)->CvPriorityQueueFloat::mem + ((unsigned int)(((unsigned int)i) * 20u)))->CvHeapElem::i' может дать неопределенный результат OpenCV-Release@release line 106, external location: C:\OpenCV2.1\src\cv\cvinpaint.cpp C/C++ Problem
предупреждение: операция над '((CV_SubdivTest*)this)->CV_SubdivTest::subdiv' может дать неопределенный результат OpenCV-Release@release line 176, external location: C:\OpenCV2.1\tests\cv\src\asubdivisions.cpp C/C++ Problem
предупреждение: сравнение знакового и беззнакового целых выражений OpenCV-Release@release line 135, external location: C:\OpenCV2.1\3rdparty\libtiff\tif_stream.cxx C/C++ Problem
auto-importing has been activated without --enable-auto-import specified on the command line. OpenCV-Release@release C/C++ Problem
 

Вложения

lazybiz

Well-known member
03.11.2010
1 339
0
#4
skysun
А у Ваc примеры (те которые в Samples\\c) нормально компилируются? Вам вообще принципиально использовать именно MinGW ?
Просто мне кажется тут сам черт голову сломит. В прикрепленном файле особо ничего не увидел...
 
S

skysun

#5
Вам вообще принципиально использовать именно MinGW ?
да нет, хотелось попробовать альтернативу Visual Studio - Eclipse. Писал под Eclipse на ява по моему очень удобно. хотел попробовать С++, а тут как раз начальство задачу по обработке видео поставило.
Ну вообшем как то так.

А у Ваc примеры (те которые в Samples\\c) нормально компилируются?
Компильтся все нормально, но где используется OpenCV-шное GUI просто после отрисовки окна проги вылетают.


Да и фиг с ним. 3 дня потерял на "пустом месте".
 

lazybiz

Well-known member
03.11.2010
1 339
0
#7
Мне удалось собрать Ваш пример под Open Watcom C++, но компилировал я его именно как C-программу (не С++), поэтому Ваш код пришлось немного изменить (на результат выполнения программы это не сказалось, не считая того что окно не должно закрываться по истечение 50 секунд).
Работает отлично, т.е. я хочу сказать что в коде у Вас все правильно было. В архиве ниже приложил весь пример целиком.
Мне кажется что проблема с совместимостью с MinGW или что-то вроде того.

C++:
#include <opencv\cv.h>
#include <opencv\highgui.h>

int main( int argc, char** argv )
{
CvFont		font;
CvPoint		pt;
CvScalar	sc;
IplImage *	hw;
int			height	= 600;
int			width	= 400;

// задаём точку для вывода текста
pt = cvPoint( height / 4, width / 2 );

// Создаёи 8-битную, 3-канальную картинку
hw = cvCreateImage( cvSize( height, width ), 8, 3 );

// заливаем картинку чёрным цветом
sc = cvScalar( 0, 0, 0, 0 );
cvSet( hw, sc, NULL );

// инициализация шрифта
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0, 0, 1, CV_AA );

// используя шрифт выводим на картинку текст
cvPutText( hw, "OpenCV Step By Step", pt, &font, CV_RGB( 150, 0, 150 ) );

// создаём окошко
cvNamedWindow( "Hello World", 0 );

// показываем картинку в созданном окне
cvShowImage( "Hello World", hw );

// ждём нажатия клавиши
cvWaitKey( 0 );

// освобождаем ресурсы
cvReleaseImage( &hw );
cvDestroyWindow( "Hello World" );

return 0;
}
 

Вложения

  • 1.6 МБ Просмотры: 7

DarkKnight

Well-known member
01.08.2010
653
0
#8
Кстати проект требует динлибку (см. прикрепление)...
Может как раз при линковании студия как раз из за этого и ругается...
Пока времени затестить нету.... Может завтра гляну....
 

Вложения

  • 108.1 КБ Просмотры: 39

lazybiz

Well-known member
03.11.2010
1 339
0
#9
Перезалил с DLL-ками. Просто подразумевалось у того кто будет тестировать, будет установлен OpenCV с бинарниками.
 
S

skysun

#10
Вчера бессоница мучала. Решил попробовать собрать OpenCv2.1 под MS VC++ 2008 ExpressEdition.
Заработала штуковина с первой попытки!

И debug и release собралось и этот самый пример пашет.
 

lazybiz

Well-known member
03.11.2010
1 339
0
#13
skysun
Всегда пожалуйста.

DarkKnight125
Думаю тему можно закрывать.
 
Статус
Закрыто для дальнейших ответов.