Определение объекта на изображении и его размеров - Delphi
Задача следующая:
- есть последовательность снимков с камеры;
- необходимо определить на кадре наличие объекта;
- построить минимальный прямоугольник, описывающий объект;
- определить площадь объекта;
- сравнить с площадью прямоугольника с предыдущего кадра.
Важный момент: фон динамический, поэтому отбросить его с помощью разницы кадров не получится.
Делаю следующее:
- строю гистограммы бинарного изображения (первая: f(x,кол-во черных точек), вторая: f(кол-во черных точек, y));
- нахожу минимумы гистограмм (резкие скачки);
- сопоставляю их и нахожу общие точки;
- строю по полученным точкам прямоугольник;
- нахожу длины двух его сторон (расстоние между двумя точками);
- определяю площадь прямоугольника;
- нахожу разность между площадью данного и площадью прямоугольника с предыдущего кадра.
Проблема следующая: алгоритм не работает, если цвет объекта близок к цвету фона.
В принципе подойдет любой алгоритм, позволящий определить объект, его размер и сравнить его с размером с предыдущего кадра.
Модет кто-то работал с подобным? Буду благодарен за любую информацию.