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

fotomer

Пользователи
  • Количество публикаций

    98
  • Зарегистрирован

  • Посещение

  • Days Won

    14

Сообщения, опубликованные пользователем fotomer


  1. Подскажите живой рускоязычный форум по CUDA? Поиском сразу не нашел.

    Еще есть плагин Nsight от Nvidia для Visual Studio. При создании нового проекта появляется шаблон CUDA Runtime, который помимо создания файлов добавляет в свойства проекта настройки по CUDA. А вот как прикрутить это к уже готовому проекту не совсем понятно. Может кто подскажет?


  2. А подскажите насколько точны измерения с помощю OpenCV с предварительной калибровкой или без, допустим метровой линейки в 1 метре, типа такого, снято на бытувую камеру типа Samsung NX

    http://xn--e1anfamim.xn--p1ai/images/img/calib3.jpg


  3. class MainWindow : public QMainWindow{
    

    .......

        Ui::MainWindow *ui;
    	cv::Mat imagem;
    	QGraphicsScene *scene;
    	QImage *img;
    	QPixmap *pixmap;
    	QGraphicsPixmapItem *pPixmapItem;

     

    По нажатию на кнопку в обработчике 

    imagem = cv::imread("../NX11/8.JPG"IMREAD_GRAYSCALE);		
    		img = new QImage((const unsigned char*)(imagem.data), imagem.colsimagem.rowsimagem.stepQImage::Format_Indexed8); // Qt image structure
    		pixmap = new QPixmap(QPixmap::fromImage(*img));
    		pPixmapItem = scene->addPixmap(*pixmap);
    		ui->gView->fitInView((QGraphicsItem*)pPixmapItemQt::KeepAspectRatio);
    		ui->gView->invalidateScene();

     

     


  4. Если камеры калиброваны(внутренняя калибровка камеры), то используется 5-ти точечный метод.

    А в OpenCV есть 5-ти точечный метод? Что-то я искал, но не нашел.

     

     

    математически вроде хватает 7, а 8 точку берут для стабильности решения.

    Не в курсе какая точность метода, допустим при измерении высоты здания?


  5. точно не знаю как в opencv обычно вроде используют 8 точек. 

    В OpenCV Есть метод который и по 7 точкам, остальные от 8. Правда мне несколько это непонятно, ведь снимки можно сориентировать по 4-5 точкам, порылся в OpenCV, но не нашел такого метода, думал может что упустил. Для меня это критично (съемка ДТП), т.к. снимки часто весьма плохого качества.


  6. После моих долгих и неудачных попыток установить и собрать нормально библиотеку opencv по винду 8

     

    Под Винду есть сборка с уже готовыми dll. Там ничего собирать не надо, просто указываешь пути в проекте, в переменных среды путь к бинарникам и вперед.


  7. Компилятор говорит:

    1>stdafx.obj : error LNK2005: "void __clrcall df(void)" (?df@@$$FYMXXZ) already defined in newsForm.obj
    В newsForm.cpp упоминаний о df нет

    В stdafx.h указать определение функции, в stdafx.cpp тело функции.

     

    З.Ы. А чем обусловлен выбор managed C++? Там придется работать с OpenCV через всякие обертки, что не совсем удобно. http://robocraft.ru/blog/computervision/575.html

    • Like 1

  8. Еще вопрос

    В каком файле проекта и как нужно объявить функцию чтобы ее было видно из любой точки программы

     

     

    В stdafx.h указывается. 

     

    З.Ы. В следующих версиях студии после 2010 прекращена поддержка форм в managed C++, только Console и Class Library.

    • Like 1

  9.  Windows Forms Application это же managet NET. Для OpenCV лучше писать в native. Непосредственно в студии проект С++ -> MFC. Но создание интерфейса в MFC довольно муторное дело, я бы рекомендовал QT. У себя в частности делаю интерфейс на QT, дебажу и пишу код в студии (у студии есть плагин для работы с QT). В самой QT бросается на форму объект QGraphicsView и делее в нем отображаются все элементы.

    Объявления в классе

    QGraphicsScene *scene;
    QImage *img;
    QPixmap *pixmap;
    QGraphicsPixmapItem *pPixmapItem;

     

    Тело функции для отрисовки.

    Mat imagem = cv::imread("DSC_0779.JPG");     
    img = new QImage((const unsigned char*)(imagem.data), imagem.colsimagem.rowsimagem.step/*QImage::Format_RGB16*/QImage::Format_Indexed8);
    pixmap = new QPixmap(QPixmap::fromImage(*img));

    pPixmapItem = scene->addPixmap(*pixmap);
    ui->gView->fitInView((QGraphicsItem*)pPixmapItemQt::KeepAspectRatio);

    • Like 1

  10. А opencv и Qt какие библиотеки линкуются статические или динамические?

    возможно стоит поменять эти флаги

    https://msdn.microsoft.com/ru-ru/library/2kzt1wy3.aspx

    OpenCV как я понимаю линкуется динамически с ранним связыванием.

    При отсуствии opencv_core300d.lib  и наличии std::stringstream у меня нормально линкуется с флагом /MD.


  11. А отключение opencv_world что-нибудь дало?

    О, исключение opencv_core300d.lib из линковки помогло, все работает.

     

    З.Ы. Сделеал пустой проект в QT, открыл в VS студии, написал одну строчку stringstream. C opencv_world300d.lib все работает, с opencv_core300d.lib сразу ошибка ликовки.


  12. Вообще, складывается впечатление, что что-то не так с типом используемой в проектах run time library. Но это надо тыкать.

     

    В настройках проекта VC++ тоже все возможные варианты Run time library перебрал, не помогает. Загадочно что расширенный std::wstringstream работает нормально. Можно работать с ним, только конвертить всякий раз string в wstring и обратно, хотя это не есть хорошо.


  13. Поставь в свойствах проекта (General) опцию Multibyte вместо Unicode.

    Это я первое что сделал, не помогает. Сейчас выяснил, что ошибка линковки возникает, если присутствует QT. В связке VC2013 и OpenCV без QT эта ошибка не возникает.


  14. Создаю в QT Creator приложение QT Widgets, открываю его в VS2013 через плагин для студии, подключаю OpenCV 3.0 beta. Все работает, картинки открываются и парсятся. Но стоит написть в коде std::stringstream как вылезает куча ошибок линковки

     

    1>opencv_core300.lib(ocl.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in CameraCalibrator.obj
    1>opencv_core300.lib(opencv_core_pch.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in CameraCalibrator.obj
    1>opencv_core300.lib(alloc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in CameraCalibrator.obj
    1>opencv_core300.lib(alloc.obj) : error LNK2005: "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z) already defined in opencv_world300.lib(opencv_world300.dll)
    1>opencv_core300.lib(system.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in CameraCalibrator.obj
    1>opencv_core300.lib(system.obj) : error LNK2005: "public: virtual __thiscall cv::Exception::~Exception(void)" (??1Exception@cv@@UAE@XZ) already defined in opencv_world300.lib(opencv_world300.dll)
    И далее много.

     

    Пробовал в настройках менять кодировку, различные варианты RuntimeLibrary, не помогает. Интересно, что std::wstringstream не вызывает ошибки, string, vector и пр. элементы std работают нормально.

    Может кто сталкивался с подобной ошибкой?


  15. Переход в принципе не возможен. Очень много из наработанного переписывать надо

    А почему в принципе не возможен, просто интересно. Мы в свое время переходили на 2008, особых проблем не было, хотя проект был крупный. А вот у 2010 компилятор более строгий и пришлось много переделывать.


  16. Просьба - может кто-нибудь даст ссылку на библиотеки OpenCV версии выше чем 1.0 обязательно для MS Visual C v6.0. Сменить версию не MSVC не могу(слишком много в проекте надо переписывать)

    Может попробывать на vc2008 перейти, на сколько помню переход на нее легкий, а вот на 2010, там да, изменений много.


  17. Пробую собрать OpenCV3.0 проект в Qt Creator с компилятором MSVC2013 32bit. 

    QT установлено в C:\QT, C:\Opencv, Windows7 SP1 х86 свежеустановленная. Поиском искал, пробовал всевозможные варианты записи путей в .PRO, но не помогает.

    В файле .PRO добавлено

    INCLUDEPATH += C:\opencv\build\include
    LIBS += -LC:\opencv\build\x86\vc12\lib
    LIBS += -lopencv_core300 \
    -lopencv_highgui300 \
    -lopencv_imgproc300 \
    -lopencv_features2d300 \
    -lopencv_calib3d300

    В файле mainwindow.cpp указано #include <opencv2/highgui.hpp> Сам файл на месте. При компиляции вылезает ошибка 
    C1083: Cannot open include file: 'opencv2/core.hpp': No such file or directory. 

    В чем может может быть проблема? При указании полного пути Creator видит этот файл.

     

     

    З.Ы. Интересно, что установив плагин к Visual Studio для работы с QT5, приконектив OpenCV я быстро запустил эту связку, все работает и запускается. А вот с Qt Creator как не бился, не получается, ошибка C1083: Cannot open include file: 'opencv2/core.hpp': No such file or directory. 

×