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

AndreyDmitriev

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

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

  • Посещение

Репутация

0 Новичек

О AndreyDmitriev

  • Звание
    Бывалый
  1. opencv 2.2

    Ну, так сказать, просто для информации: Скачал OpenCV 2.2 (причём именно для VS2010), и перекомпилировал ядро интеловским компилятором (последним Composer), навешанным на VS2005. Настройки по умолчанию. opencv_core успешно скомпилировалась, тесты прошли и в сухом остатке: оригинальный opencv_test_core пробежал за 01:58, а после перекомпиляции интеловским компилятором за 01:38. Мелочь, а приятно. Это уже не первый случай, когда интеловский компилятор выдаёт на гора код, работающий процентов на двадцать быстрее чем VS. Подозреваю, что можно выжать и ещё больше, если поколдовать с распараллеливанием. Андрей.
  2. Работа с камерами

    У меня изменение ширины и высоты при помощи cvSetCaptureProperty работает. Другое дело, что оно работает немного странно. Дело в том, что при уменьшении разрешения должно расти количество картинок в секунду. Например при максимальном разрешении моя камера отдаёт только 15 картинок, а при половинном разрешении все 30. Но этого не происходит - картинка-то уменьшается, а вот скорость не растёт. Ну и не каждое разрешение можно установить, а только то, которое поддерживает камера. Кроме того, ширина и высота - единственные параметры, которые можно установить. Было бы здорово, если бы с помощью cvSetCaptureProperty также можно было бы установить яркость, контраст и гамму (и в библиотеке константы уже приготовлены), но чтобы это реализовать надо глубоко покопаться в исходниках (вроде как VideoInput за это отвечает).
  3. Работа с контурами

    Здравствуйте, коллеги, Есть такая функция cvMatchTemplate. Она работает, но только если темплейт совпадает по положению с изображением: Шестерёнки я могу обе найти, а вот моторчик только один. (конечно, в конкретном частном случае могу использовать cvMatchShapes, но бывают случаи когда это невозможно) Я хочу соорудить аналог cvMatchTemplate, но так, чтобы она была нечувствительна к повороту/масштабу/сдвигу. Примерно как вот здесь: http://www.lps.usp.br/~hae/software/cirateg/index.html (но там нет исходников) Хочу вот спросить - может быть кто-нибудь делал подобное, (прежде чем я изобрету велосипед) Спасибо, Андрей.
  4. Работа с контурами

    Да, спасибо, пример хороший. Только там двумя строчками выше вот какая конструкция: cvFindContours( gray, storage,&contours,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0)) ; //-------------- if(contours!=0) { NumCont=contours->total; // количество найденных контуров } Если я правильно понимаю тип CvSeq, то в NumCont попадает не общее количество найденных контуров, а количество точек в первом контуре (ну, у меня во всяком случае) - я это имел ввиду. Андрей.
  5. Работа с контурами

    Блин, ошибся я, а отредактировать пост не получается... В общем как-то так for(nContours = 0; contours!=0; contours = contours->h_next, nContours++){... Извиняйте за двойной пост, Андрей.
  6. Работа с контурами

    Коллега, я так понимаю, что запросив contours->total Вы получили количество точек в первом контуре вместо количества контуров. Дальше в цикле надо обходить по всем контурам и считать сколько их всего: for(;contours!=0;contours = contours->h_next, contours++){... Четыре контура всего и получается, я даже не поленился проверить: Андрей.
  7. Обработка ошибок в OpenCV 2.0 - как правильно?

    Да это понятно, что можно исправить. Просто в эти дебри лезть очень не хочется, а хочется использовать уже скомпилированные библиотеки "как есть". Вообще обработка ошибок в OpenCV реализована довольно странно. Почему было просто не вернуть код ошибки через return? А так сдаётся мне, что я поимею кучу проблем с мультипотоковыми приложениями. Ладно, пошёл я CV_Assert править... UPD: Поправил CV_Assert (в первом приближении просто воткнул туда return) - вроде заработало. Завтра переброшу код ошибки через callback и всё должно взлететь. Странно, что компилятор Micro$oft Studio 8 (2005) не смог слинковать проект (не нашёлся vcomp.lib), а вот интеловский компилятор с задачей справился. Андрей.
  8. Обработка ошибок в OpenCV 2.0 - как правильно?

    На самом деле проблема сидит вот здесь: Мне этот "throw" не перехватить ничем, даже SetUnhandledExceptionFilter не может с этим справиться... Хорошая была библиотека, а теперь ей пользоваться практически невозможно.
  9. Обработка ошибок в OpenCV 2.0 - как правильно?

    Для иллюстрации, чтобы было понятнее, что я имею в виду: вот этот код: приводит вот к такому результату: что надо сделать, чтобы получить CV_BadImageSize или CV_StsUnmatchedSizes вместо исключения? Андрей
  10. Доброе утро, коллеги! Я тут подключаю OpenCV к LabVIEW и столкнулся вот с какой проблемой: если в OpenCV возникает ошибка, то в версии 2.0 генерируется исключение, которое LabVIEW переварить не может и моментально падает. Ну например, я складываю две картинки, а они разного типа или разного размера. В версии 1.0 всё работало - я мог получить код ошибки через cvGetErrStatus (режим устанавливался SetErrMode(CV_ErrModeSilent) ). В версии 2.0 cvGetErrStatus всегда возвращает ноль. Я пробовал также подключить мою собственную calback функцию, но и это не даёт желаемого результата - всё равно генерируется исключение. Технически в моём случае OpenCV подключается через wrapper библиотеку, которая написана на чистом Си. Как в этом случае правильно обрабатывать возникающие ошибки? Спасибо заранее, Андрей Дмитриев.
×