ArtemBogatov
Пользователи-
Количество публикаций
8 -
Зарегистрирован
-
Посещение
Репутация
2 НовичекО ArtemBogatov
-
Звание
Новичок
-
Сравнение объектов контурным анализом.
ArtemBogatov replied to 2expres's topic in Обсуждение общих вопросов
В контрибах OpenCV реализовано сравнение контуров на основе дескрипторов Фурье. Вот ссылка на пример использования https://github.com/opencv/opencv_contrib/blob/master/modules/ximgproc/samples/fourier_descriptors_demo.cpp -
Добрый день. Возник вопрос, какие типы дефектов контуров бывают и как их оценивать. В первую очередь интересуют такие типы дефектов как размытость границ, неравномерность амплитуды в разных точках контура, и т.д.
-
Попробуйте оптический поток. Лукаса-Канаде или Фарнебека. Если кроме тряски у Вас нет никакого движения на видео, то просто вычисляете среднее смещение ключевых точек (в случае разреженного оп) или пикселей (в случае плотного оп). А потом по серии кадров вычисляете максимум. Ещё можете посмотреть варианты в исходниках OpenCV в модуле стабилизации видео ( PyrLkRobustMotionEstimator, например )
-
Посмотрите вот эту ссылку: http://www.robots.ox.ac.uk/ActiveVision/Publications/benfold_reid_cvpr2011/benfold_reid_cvpr2011.html, как раз Ваша задача. Ещё посмотрите пример blobtrack из примеров OpenCV, там используется фильтр частиц (Particle Filter) для разруливания коллизий (столкновения объектов заслон одного другим и т.д.)
-
Для алгоритма CamShift цвет имеет принципиальное значение. Если на фоне есть объекты с похожей гистограммой, алгоритм может ошибаться. Если объект, за которым Вы хотите следить имеет особенности (углы, выраженные границы, перепады яркости), то Вам скорее всего поможет детектор ключевых точек (GoodFeatureToTrack, FastFeatureDetector и т.п) и разреженный оптический поток Лукаса-Канаде (PyrOpticalFlowLK). Пример реализации можно найти в папке opencv\samples\cpp\lkdemo.cpp. Судя по тому, что объект движется медленно и плавно, Вам, возможно, стоит ещё посмотреть в сторону шаблонов движения. Пример реализации в opencv\samples\c\motempl.c. Где-то на форуме Smorodov выкладывал статью на русском с теорией по шаблонам движения.
-
Такая ошибка могла возникнуть если, например, у Вас есть ещё одна статическая переменная в другом файле, зависящая от этой, т.к. по стандарту инициализация должна произойти до их использования, но порядок инициализации не определён. Если у Вас причина в этом, а статические переменные всё равно хочется использовать, есть пара вариантов как это сделать.
-
Посмотрите здесь: http://robocraft.ru/blog/computervision/460.html . Последний пример ─ то, что Вам нужно. Если OpenCV опять начнёт сопротивляться, приведите текст ошибок ─ попробую помочь.
-
Нужно так: IplImage* img2 = cvCreateImage( cvGetSize(img), CV_32F, 1 );