3.2. Описание алгоритма программы
Движение, с точки зрения компьютерного зрения – это изменение положения объектов относительно их прошлого расположения. Для того, что бы успешно детектировать движение на изображении, программа должна запоминать и хранить в себе предыдущие состояния. Существует несколько подходов к этой задаче, различающиеся, в основном количеством хранимых кадров и методами обработки их совокупности с целью получить предыдущее состояние объекта. Самый простой из этих подходов (реализованный в данном алгоритме) – хранение лишь предыдущего кадра и отсутствие последующей обработки.
Для осуществления выбранного подхода, программа должна на каждом шаге получать новое изображение с web-камеры. Этим занимается модуль захвата изображения. На каждой итерации он опрашивает web-камеру на наличие кадров и передает их дальше, для последующей обработки.
Важным этапом любой задачи связанной с обработкой изображения является фильтрация изображения от шумов. Шумы могут сильно повлиять на реализуемый алгоритм, так как любой расхождение в двух последовательных кадрах трактуется как наличие движения. В качестве фильтрации используется идея разбивки цветного изображения на каналы, для последующей обработки. При вычислении разницы предыдущего кадра с текущим, изображения будут сравниваться поканально, а затем объединены Таким образом, шум сможет повлиять на результат, если он будет одинаково представлен на всех каналах изображения.
На этапе вычисления разницы с предыдущим кадром мы имеем текущий и предыдущий кадр разбитые на каналы. Кадры представляют собой матрицы размерами эквивалентными разрешению кадра, захваченного с камеры. В результате мы получаем результирующие одноканальные изображения, которые объединяем с помощью функции «AND». Данная функция трактует любое ненулевое значение как «ИСТИНА», а любое нулевое значение, как «ЛОЖЬ». В результате мы получаем одноканальное изображение с пикселями 0 и 255.Такое изображение называется бинарной маской. Пиксели со значением 255 соответствуют пикселям захваченного кадра, в которых предположительно есть движение. Бинарная маска передается в следующий блок программы.
Блок программы, обозначенный на схеме условным оператором, проверяет наличие движения, полагаясь на бинарную маску. В данной реализации прохождение условия зависит от двух параметров среднего значения пикселя для бинарной маски и параметра чувствительности, регулируемого пользователем. Чем выше задан параметр чувствительности, тем большее среднее значение необходимо для прохождения условия. При низких значениях чувствительности условия срабатывает на любое движение и иногда на шум в изображении.
В случае прохождения условия, программа попадает в блок, подающий звуковой сигнал на динамик. Делается это с помощью функции Play, которой в качестве файла передается «signal.waw» находящийся по адресу «С:\shvv\». Делается это в отдельном потоке, что позволяет интерфейсу программы работать во время проигрывания сигнала.
- Задание на курсовую работу Содержание
- Введение
- Выбор и обоснование элементной базы
- 2. Структурная схема устройства
- 2.1. Блок схема устройства
- 2.2. Устройство usb web-камеры
- 2.3 Матрица web-камеры
- 2.4. Принцип действия web-камер
- 3. Структура алгоритма программы
- 3.1. Блок схема алгоритма программы
- 3.2. Описание алгоритма программы
- 4. Заключение
- 5. Список литературы
- Приложение а.Текст программы
- Interface
- Implementation
- Приложение б. Внешний вид программы