Opencv+eclipse+mingw

Тема в разделе "C и С++ FAQ", создана пользователем skysun, 16 ноя 2010.

Статус темы:
Закрыта.
  1. skysun

    skysun Гость

    Не могу отбилдить 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 уже видел
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Можешь их тоже выложить?
     
  3. skysun

    skysun Гость

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

    ../../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
     

    Вложения:

  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    skysun
    А у Ваc примеры (те которые в Samples\\c) нормально компилируются? Вам вообще принципиально использовать именно MinGW ?
    Просто мне кажется тут сам черт голову сломит. В прикрепленном файле особо ничего не увидел...
     
  5. skysun

    skysun Гость

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

    Компильтся все нормально, но где используется OpenCV-шное GUI просто после отрисовки окна проги вылетают.


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

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну не все же задачи за 5 минут решаются. В данный момент я думаю о решении Вашей проблемы.
     
  7. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Мне удалось собрать Ваш пример под 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;
    }
     

    Вложения:

    • 2.rar
      Размер файла:
      1,6 МБ
      Просмотров:
      7
  8. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Кстати проект требует динлибку (см. прикрепление)...
    Может как раз при линковании студия как раз из за этого и ругается...
    Пока времени затестить нету.... Может завтра гляну....
     

    Вложения:

    • err.jpg
      err.jpg
      Размер файла:
      108,1 КБ
      Просмотров:
      39
  9. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Перезалил с DLL-ками. Просто подразумевалось у того кто будет тестировать, будет установлен OpenCV с бинарниками.
     
  10. skysun

    skysun Гость

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

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

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ну вот и славненько.
     
  12. skysun

    skysun Гость

    lazybiz спасибо за помощь
     
  13. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    skysun
    Всегда пожалуйста.

    DarkKnight125
    Думаю тему можно закрывать.
     
Статус темы:
Закрыта.

Поделиться этой страницей