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

ArtemBogatov

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

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

  • Посещение

Все публикации пользователя ArtemBogatov

  1. В контрибах OpenCV реализовано сравнение контуров на основе дескрипторов Фурье. Вот ссылка на пример использования https://github.com/opencv/opencv_contrib/blob/master/modules/ximgproc/samples/fourier_descriptors_demo.cpp
  2. Добрый день. Возник вопрос, какие типы дефектов контуров бывают и как их оценивать. В первую очередь интересуют такие типы дефектов как размытость границ, неравномерность амплитуды в разных точках контура, и т.д.
  3. Размытость

    Попробуйте оптический поток. Лукаса-Канаде или Фарнебека. Если кроме тряски у Вас нет никакого движения на видео, то просто вычисляете среднее смещение ключевых точек (в случае разреженного оп) или пикселей (в случае плотного оп). А потом по серии кадров вычисляете максимум. Ещё можете посмотреть варианты в исходниках OpenCV в модуле стабилизации видео ( PyrLkRobustMotionEstimator, например )
  4. Трекинг объектов.

    Посмотрите вот эту ссылку: http://www.robots.ox.ac.uk/ActiveVision/Publications/benfold_reid_cvpr2011/benfold_reid_cvpr2011.html, как раз Ваша задача. Ещё посмотрите пример blobtrack из примеров OpenCV, там используется фильтр частиц (Particle Filter) для разруливания коллизий (столкновения объектов заслон одного другим и т.д.)
  5. Для алгоритма CamShift цвет имеет принципиальное значение. Если на фоне есть объекты с похожей гистограммой, алгоритм может ошибаться. Если объект, за которым Вы хотите следить имеет особенности (углы, выраженные границы, перепады яркости), то Вам скорее всего поможет детектор ключевых точек (GoodFeatureToTrack, FastFeatureDetector и т.п) и разреженный оптический поток Лукаса-Канаде (PyrOpticalFlowLK). Пример реализации можно найти в папке opencv\samples\cpp\lkdemo.cpp. Судя по тому, что объект движется медленно и плавно, Вам, возможно, стоит ещё посмотреть в сторону шаблонов движения. Пример реализации в opencv\samples\c\motempl.c. Где-то на форуме Smorodov выкладывал статью на русском с теорией по шаблонам движения.
  6. ошибка

    Такая ошибка могла возникнуть если, например, у Вас есть ещё одна статическая переменная в другом файле, зависящая от этой, т.к. по стандарту инициализация должна произойти до их использования, но порядок инициализации не определён. Если у Вас причина в этом, а статические переменные всё равно хочется использовать, есть пара вариантов как это сделать.
  7. Проблема с некоторыми функциями opencv

    Посмотрите здесь: http://robocraft.ru/blog/computervision/460.html . Последний пример ─ то, что Вам нужно. Если OpenCV опять начнёт сопротивляться, приведите текст ошибок ─ попробую помочь.
  8. Проблема с некоторыми функциями opencv

    Нужно так: IplImage* img2 = cvCreateImage( cvGetSize(img), CV_32F, 1 );
×