Как использовать цифровую камеру как веб-камеру? Видеонаблюдение для всех – понадобится только веб-камера, программа и компьютер Следить по вебке за человеком.

Приветствую уважаемый читатель! Раз Вы на этой страничке моего сайта, то, скорее всего, Вас интересует: как из вебки сделать камеру наблюдения или, возможно ли использовать обычную веб камеру в качестве видеонаблюдения?

iSpy – бесплатная компьютерная программа, которая является мощной системой для видеонаблюдения. Предназначена она для того, чтобы обеспечивать безопасность помещений, и оповещать их хозяев в случае проникновения в дом посторонних. Приложение способно при помощи веб-камер и микрофонов опознавать и записывать любые движения или звуки в наблюдаемом помещении. Также в программе предусмотрена запись только по тревоге, то есть: Съёмка будет начинаться только в момент появления движения в диапазоне видимости камеры, или при появление звуковых колебаний. В общем, если сказать проще, то программа может работать, как датчик движения.

Приложение iSpy позволяет его пользователям не только наблюдать в режиме онлайн за всем, что происходит в зоне обзора веб-камеры, но и одновременно с этим записывать видео, а позже просматривать его. Само видео сохраняется в выбранном формате, который воспроизводятся на любом медиа проигрывателе, а также – в обычном веб-браузере. Записанное видео можно сохранять не только у себя на компьютере, но и на удаленных серверах компании-разработчика приложения iSpy.

iSpy обладает возможностью (из любого места) принимать и передавать полученные данные с одного компьютера на другой, при условии, если они будут подключены в единую систему, и будут иметь выход в интернет. Данная система чем-то напоминает технологию облака – виртуального хранилища файлов. Эта вещь является очень удобной, если вы хотите избежать проблем с хранением данных, и обеспечить их полную безопасность.

Также в приложении имеется функция отправления СМС-сообщений на телефон или писем на EMail: через определенное количество времени (с прикрепленными изображениями), или в случае обнаружения каких-либо движений либо звуков. Это очень удобно, особенно, когда вы уехали в командировку или отпуск.

Одним из главных достоинств приложения iSpy является возможность осуществлять наблюдение с неограниченного количества компьютеров, которые можно объединить в одну сеть.

Преимущества программы iSpy:

· скрытое наблюдение через веб камеру ноутбука или компьютера;

· обнаружение и запись любого движения;

· опознает не только движения, но и звуки;

· может работать с неограниченным количеством аппаратуры для наблюдения;

· возможность объединения нескольких компьютеров в одну систему;

· отсылка уведомлений на телефон или электронную почту (с прикрепленными фотографиями);

· возможность работать удаленно;

· имеет хорошую систему защиты, с помощью различных паролей;

· приложение можно скачать совершенно бесплатно на сайте разработчика или по прямой ссылке с Яндекс диска (). На сайте производителя программа не имеет русского языка. У меня на Яндекс диске версия программы многоязычная, в том числе и на русском.

После установки и запуска программы, для установки русского языка перейдите во вкладку «Options»

Следующим шагом Вам нужно будет выбрать вид подключаемой видеокамеры:

Обезопасить свою квартиру от проникновения посторонних людей достаточно легко, и программа iSpy является достойным вариантом для решения данной проблемы!

Как известно, даже если у вас паранойя - это не значит, что за вами не следят.

Сегодня, когда за вами совершенно точно следят, эта фраза особенно актуальна - крупные компании давно мониторят ваши действия в сети, кибермошенники приглядываются к счету в банке, а нейросети научились успешно распознавать лица и находить по фото ваш профиль ВКонтакте.

Чтобы сохранить приватность хотя бы дома, рекомендуем наше от взлома. Сегодня мы дадим ряд дополнительных рекомендаций для тех, кого злоумышленники все-таки смогли взломать и получить доступ к камере ПК или ноутбука.

Представьте, что световой индикатор камеры на секунду загорается и тут же гаснет. Это может быть тревожным звонком, игнорировать который нельзя (если вы не хотите, чтобы ваша личная жизнь вдруг стала общественной). Но даже если индикатор не горит, веб-камера все еще может тайно работать.

Узнать, какие программы используют камеру, довольно просто.

1. Прежде всего, вам понадобится специальный софт, который покажет все процессы, связанные с тем или иным устройством. Для этой цели предлагаем воспользоваться Process Explorer. Эта удобная программа доступна в онлайн - и оффлайн -режимах.

2. Затем вам нужно узнать название веб-камеры в системе (в русскоязычных версиях Windows это звучит как «Имя объекта физического устройства»). Найти эту информацию нетрудно: Пуск - Панель управления - Оборудование и звук - Диспетчер устройств.

3. Далее «Устройства обработки изображений» - «Свойства» камеры - вкладка «Сведения». В выпадающем списке выбираем «Имя объекта физического устройства», которое выглядит примерно так: «\Device\0000009c». Щелкните по нему правой кнопкой мыши и нажмите «Копировать».

4. Теперь заходим в Process Explorer, открываем поиск по кнопке с иконкой бинокля (или сочетанием Ctrl + F), вставляем «Имя объекта физического устройства» и запускаем поиск, чтобы найти все процессы, использующие вашу веб-камеру.

Если никакой подозрительной активности не обнаружилось, беспокоиться не о чем. Обычно в этом списке вы найдете только Skype или другие приложения для видеозвонков. Однако не поленитесь проверить путь запуска. Злоумышленники часто пытаются выдать вредоносную программу за легитимное приложение, пользуясь невнимательностью обычных пользователей.

Если же вы видите в списке Process Explorer подозрительные несистемные программы, которые вы точно не устанавливали, рекомендуем закрыть этот процесс и выполнить полное .

P. S. Описанный выше способ можно применять и к микрофонам, которые также могут стать целью для шпионских программ.

Мысль о том, что кто-то взломал камеру вашего ноутбука и шпионит за вами, чтобы затем шантажировать вас, угрожая опубликовать видеозапись в интернете или отправить кому либо конкретно, может звучать как сюжет из голливудского фильма. Но это не так уж трудно сделать, как можно подумать. Camfecting – это незаконный доступ к веб-камере владельца путем взлома. Это один из самых распространенных способов, которыми пользуются хакеры. Они получают полный контроль над камерой – внедряют программные “жучки”, снимают и записывают компрометирующие моменты из жизни жертвы

Как определить, взломана ли ваша веб-камера?

Все, что нужно сделать хакерам для взлома вашей камеры, это установить вредоносное ПО с удаленным управлением в ваш ноутбук (это также дает им доступ к вашим личным файлам, сообщениям и истории просмотра). Тем не менее, легко обнаружить предупреждающие знаки и положить этому конец. Как это сделать?

  1. Проверить индикатор веб-камеры
    Если индикатор камеры горит или у нее мигает светодиод, когда вы ее не включали, это означает, что ею пользуется кто-то другой. Это может быть хакерская программа или просто расширение браузера, запущенное в фоновом режиме, которое использует вашу веб-камеру.
  2. Проверить расширения браузера
    Перезагрузите компьютер и запустите браузер на котором вы обычно работаете. Если индикатор загорается при открытии браузера, значит проблема в расширении браузера. Но какое именно? Отключайте их по одному, чтобы найти виновника.
  3. Проверка приложений
    Еще одной возможной причиной мигания индикатора могут быть приложения. Чтобы проверить их, выполните следующее: запустите приложение и посмотрите, загорится ли индикатор веб-камеры, если да, то продолжайте открывать приложения по одному, пока не обнаружите, кто еще втайне его использует.
    Но может быть и по-другому, если индикатор загорится спустя несколько секунд после перезагрузки компьютера, без запуска каких-либо приложений – однозначно, вы были взломаны.
  4. Проверить, запущен ли процесс работы веб-камеры
    Перейдите в Диспетчер задач и найдите все запущенные в этот момент программы на вкладке Processes (Процессы). Проверьте наличие утилиты веб-камеры. Протестируйте ее, перезагрузив компьютер, если утилита запустилась автоматически – вы взломаны.
  5. Запустить веб-камеру
    Закройте все программы и приложения и попробуйте сами включить камеру. Если появляется сообщение об ошибке, указывающее на то, что камера уже используется, это означает, что камера ноутбука взломана. Тогда стоит обратиться к инструкции в пункте 1.
  6. Поиск аудио- и видеозаписей
    Если хакер тайно шпионит за вами, то вам нужно поискать аудио и/или видеозаписи, которые вы не сохраняли. Перейдите в папку, в которой веб-камера хранит такие файлы. Несколько раз проверьте ее настройки и выясните не была ли изменена эта папка без вашего ведома. Но не стоит особо полагаться на этот метод, так как многие хакеры могут транслировать все, что они записывают через вашу камеру на свое устройство.
  7. Запустить проверку на вредоносное ПО
    Если выяснится, что камерой пользуется неизвестное программное обеспечение, немедленно просканируйте свою компьютерную систему на наличие вредоносного ПО. Если сканер что-нибудь найдет, переместите файл в карантин. Если это не решит проблему или вредоносное ПО не удаляется, то стоит обратиться к техническому специалисту.

На видео: Как узнать следят ли за тобой через web камеру

Как избежать компьютерного шпионажа через веб-камеру?

  1. Включить брандмауэр
    Брандмауэр защищает вашу систему, отслеживая сетевой трафик и блокирует подозрительные соединения. Убедитесь, что встроенный брандмауэр вашего компьютера включен и работает.
  2. Надежный антивирус
    Выберите тот, который обладает расширенной защитой от вредоносных программ, шпионских программ и вирусов. Антивирусная программа обнаружит и заблокирует угроз до того, как они нанесут вред.
  3. Фишинговая ловушка
    Хакеры могут маскироваться под агентов службы поддержки и связываться с вами, говоря, что у вас возникла проблема с вашей системой/компьютером/программой, и что они могут помочь. Не верьте таким сообщениям. Это распространенная фишинговая технология, используемая киберпреступниками для установки шпионского программного обеспечения удаленного доступа в ваше устройство. Такое ПО позволит им получить доступ к вашей камере и управлять правами доступа к ней.

Другой способ заманить жертв для загрузки программного обеспечения – RAT (Троян удаленного доступа), это фишинговые письма, которые скрывают поддельные URL-адреса и вредоносные файлы. Относитесь к письмам от неизвестных отправителей с осторожностью и не нажимайте на подозрительные ссылки и не загружайте подозрительные вложения.

  • Безопасности в общественном Wi-Fi
    Общедоступные сети Wi-Fi крайне уязвимы для хакерских атак. Киберпреступники часто нападают на людей в свободных “горячих точках” и пытаются проникнуть на их устройства с помощью вредоносных программ. Всегда используйте VPN для защиты своего Wi-Fi соединения и защищайте себя от нежелательных программ-шпионов.
  • Заклеить веб-камеру
    Заклейте камеру лентой. Даже Марк Цукерберг делает это. Это самый простой и 100% надежный способ не допустить, чтобы кто-то наблюдал за вами через камеру вашего компьютера. Если вы считаете, что лента портит внешний вид, то купите специальную заглушку, которая крепится к веб-камере.
  • Что есть у хакеров на вас?
    Если вы получаете угрожающие сообщения о том, что кто-то взломал вашу камеру, не воспринимайте это как правду сразу же. Это может быть атака СИ (). Пусть они сначала докажут. Такие мошенники не обладают техническими знаниями, чтобы взломать вас, но они знают, как играть с вашими эмоциями.

Как проверить, камера следит за пользователем или нет?

Здравствуйте, сегодня мы поговорим о том, как проверить, работает ли сейчас веб-камера вашего ноутбука или компьютера, и камера следит сейчас за вашими движениями, или же вы можете преспокойно себе ковырять в носу?

То, что любое мобильное устройство сейчас снабжено камерой, чертовски удобно. А вы не задумывались, что камера может снимать и без вашего разрешения? Ведь она своим только существованием нацелена на того, кто устроился напротив монитора. То есть вас.

Следуем далее. Если камера встроена, то помигивающий рядом с ней светодиод часто «выдаёт» процесс работы. Такой же «глаз» расположен и на монтируемом на мониторе стационарного ПК устройстве. Ну… хорошо, если так, и вы вдруг обратили на это внимание. А если нет, и камера следит за вами прямо сейчас? Она может это делать и не помигивая…

Сразу о неприятном.

Вариантов, когда хакер может включить камеру на расстоянии, очень много. Обычно это делается с помощью двух вариантов:

  • троянской программы, причём она будет скомпонована не только ради того, чтобы транслировать изображение с камеры. Ведь картинка сама по себе значения не имеет. Иногда включение камеры и последующая запись идёт вкупе с другим, огромным количеством программ, которые позволяют, в том числе, и отключать большинство функций безопасности Windows. Типичный и самый элементарный пример такого трояна – .
  • кто не знает, (он же метер ), советую с ним хоть поверхностно, но познакомиться. И если в первом пункте ловкость хакера может сойти на нет благодаря хорошему антивирусному пакету, то от этого панацеи нет – антивирус открытую сессию метера не вычленяет. А в числе запущенных служб там может быть запущена и запись скриншотов с экрана или вебкамеры. Читайте статью по ссылке.

Камера следит? Вариант на скорую руку.

Давайте-ка проверим …

Но для начала я попрошу вас скачать очень хорошую программку под названием Process Explorer . Она очень полезна для тех, кто интересуется природой тех или иных процессов, которые протекают в Windows , позволяя отследить программы и , запущенные в системе. С её помощью легко выявлять вирусы и прочую дрянь, которая удачно маскируется под популярные процессы. Программа Process Explorer будет фигурировать в моих статьях не раз, вам давно пора ею обзавестись. Она на английском, установки не потребует, простой исполнительный файл.

Но вернёмся к “нашим баранам” и проверим, за кем камера следит.

Качаем программу Process Explorer с сайта Microsoft в zip-архиве

Чтобы проверить подробности работы вашего устройства (да любого!), вам понадобится его полное название. Диспетчер устройств в Windows выдаст его с потрохами. Компьютер (через Пуск ) – правой мышкой Свойства Диспетчер устройств .

Теперь найдите устройства обработки изображений. Разверните пункт. И щёлкните правой мышкой Свойства . Скопируйте название устройства во вкладке Описание устройства :

Теперь запускаем Process Explorer . Напоминает она Диспетчер задач windows. Слева в панели инструментов найдите значок с биноклем. Щёлкните по нему и вставьте скопированное. Нажмите Search

Если вас уже что-то насторожило, убейте процесс с помощью двух кнопок выше, начинающихся с Kill . Посмотрите, что произойдёт с работоспособностью камеры и программы для работы с камерой. Если не произошло ничего – вариант задуматься о том, что кто-то ещё знает, как выглядит ваше лицо перед монитором. А то, что камера следит за вами, считайте уже доказанным фактом.

  • чтобы верно определить свою камеру среди прочих устройств компьютера и ноутбука, вам понадобится её полное имя в списке оборудования. Лучше Диспетчера Windows этого вам никто не скажет. Жмём WIN + R , набираем команду
devmgmt.msc

Скопируйте имя из вкладки Сведения под пунктом Описание устройства и введите его в открытом окне поиска Process Explorer (CTRL + F). Как действовать дальше, вы знаете. Проверьте и удостоверьтесь.

Как предотвратить?

Скажу по секрету – хорошо спрятанный троян спрячет “процесс” так, что никто его уже не заметит. Следовательно, проследите чтобы зараза в компьютер не попадала. Если хорошего антивирусного пакета нет – ваш компьютер открыт для наблюдения. А он решит большинство проблем. Обойти защиту антивируса, а иногда даже на уровне Difender -а от Windows 10, может далеко не каждый “хакер”. Профессионалов, которые будут посягать на вашу камеру, немного найдётся. И без антивируса в сети вообще делать нечего. Проблема ведь иногда в том, что хакеры нередко имеют вполне конкретные звания и должности.

Есть возможность – отключите. И включайте только на время сеанса. Камера встроенная? В наверняка есть возможность отключить камеру оттуда. Пляшите от слова camera в настройках CMOS. Этим и воспользуйтесь. Если же пользуетесь часто – подойдёт следующий вариант.

Некоторые люди опасаются, что встроенная в их ноутбуки вебкамера может за
ними подглядывать. Они опасаются этого настолько серьезно, что порой даже
заклеивают изолентой ее недремлющее око. Делают они это не зря. Мы расскажем,
как можно программно овладеть встроенной в ноутбук веб-камерой и использовать ее
функционал как в мирных, так и не очень целях.

Начинаем реализацию: первые досадные огорчения

Я был очень удивлен и расстроен, когда узнал, что в великом и могучем.NET
Framework напрочь отсутствует возможность простого взаимодействия с веб-камерами.
В четвертой версии ситуация улучшилась (для SilverLight-проектов точно появились
соответствующие классы), но протестировать я их не успел, поскольку пример для
данной статьи я начал писать еще до официального выхода VS2010 и 4-го.NET’a.

Практически отчаявшись, я плотно засел в гугле. Результаты поиска по рунету
меня не вдохновили – все, что я нашел – это ссылки на MSDN и технологию
DirectDraw. Я даже попробовал набросать простенький примерчик, но из-за
отсутствия опыта работы с DirectDraw меня постиг облом. У меня получилось
собрать совсем простенькое приложение, но я так и не смог выловить в нем все
глюки.

Еще больше отчаявшись, я принялся шерстить ресурсы наших западных товарищей.
Проштудировав несколько десятков ссылок, я смог нарыть много вкусностей. Среди
них были всевозможные примеры и небольшие статейки (американцы не любят много
писать). Мне даже удалось найти рабочий пример на основе DirectDraw, но, когда я
увидел код – ужаснулся. Разобраться в нем было тяжело. Поэтому я решил с ним не
заморачиваться, а попытаться найти способ попроще. Не успел я распрощаться с
примером на DirectDraw, как на глаза мне попался еще один. Автор примера закодил
целую библиотеку для работы с веб-камерами и другими устройствами видеозахвата,
используя технологию VFW (Video For Windows).

Жаль, что проект автора (я про библиотеку) был максимально кастрирован. Все,
что позволяла сделать библиотека – вывести изображение с веб-камеры. Ни захвата
отдельных кадров, ни записи видео и других полезных нам фич не было.

И тем не менее, мое подсознание решительно сказало мне, что этот проект и
есть то, что я искал. Не успел я беглым взглядом пробежаться по его коду, как
увидел имена знакомых win-сообщений и не менее знакомых названий WinAPI функций.
Когда-то давным-давно мне приходилось писать приложение для работы с веб-камерой
на Delphi. Тогда я и столкнулся с этими функциями впервые.

Посмотрев сорцы, я решил написать свою версию библиотеки и снабдить ее нужным
функционалом.

Взвод, готовность №1

Вполне возможно, что в одном компе/ноуте может быть несколько веб-камер. За
примером далеко ходить не надо. Мне по работе часто приходится организовывать
простенькие видеоконференции. Обычно в них участвуют два человека. Каждого из
участников снимает отдельная камера. Сами камеры подключены к моему компу. Когда
я начинаю съемку, то выбираю в программе для работы с видеокамерами нужную в
настоящий момент камеру. Раз уж мы решили взять камеру под контроль, то обязаны
разобраться, как получать список установленных устройств видеозахвата и выбрать
то, с которым будем работать в настоящий момент.

Для решения этой нехитрой задачи в WindowsAPI предусмотрена функция
capGetDriverDescription(). Она принимает пять параметров:

  1. wDriverIndex – индекс драйвера видеозахвата. Значение индекса может
    варьироваться от 0 до 9;
  2. lpszName – указатель на буфер, содержащий соответствующее имя драйвера;
  3. cbName – размер (в байтах) буфера lpszName;
  4. lpszVer – указатель на буфер, содержащий описание определенного
    драйвера;
  5. cbVer – размер буфера (в байтах), в котором хранится описание драйвера.

В случае успешного выполнения, функция вернет TRUE. Описание функции у нас
есть, теперь посмотрим, как определить ее в C#. Делается это так:


protected static extern bool capGetDriverDescriptionA (short wDriverIndex,
ref String lpszName, int cbName, ref
String lpszVer, int cbVer);

Обрати внимание, что перед тем, как указать имя подключаемой функции, в
обязательном порядке требуется написать имя DLL, в которой она определена. В
нашем случае это avicap32.dll.

Так, функция импортирована, теперь можно написать класс, в котором она будет
использоваться. Весь код класса для получения списка устройств я приводить не
стану, покажу лишь код ключевого метода:

public static Device GetAllCapturesDevices()
{
String dName = "".PadRight(100);
String dVersion = "".PadRight(100);

for (short i = 0; i < 10; i++)
{
if (capGetDriverDescriptionA(i,
ref dName, 100, ref dVersion,
100))
{
Device d = new Device(i);
d.Name = dName.Trim();
d.Version = dVersion.Trim();

devices.Add(d);
}
}
return (Device)devices.ToArray
(typeof(Device));
}

Код выглядит проще некуда. Самое интересное место в нем – цикл, в котором
происходит вызов упомянутой выше функции capGetDriverDescription. Из MSDN мы
знаем, что индекс (первый параметр функции capGetDriverDescription()) может
варьироваться от 0 до 9, поэтому мы целенаправленно запускаем цикл в этом
диапазоне. Результатом выполнения метода будет массив классов Device (этот класс
я определил самостоятельно, смотри соответствующие исходники).

С получением списка устройств разобрались, теперь позаботимся об отображении
видеопотока с камеры. Тут нам сослужит хорошую службу функция
capCreateCaptureWindow(), предназначенная для создания окна захвата.

Немного забегая вперед, скажу, что дальнейшие действия с камерой будут
происходить путем банальной отправки сообщений окну захвата. Да, именно так,
придется воспользоваться до боли знакомой windows-программисту (и приколисту)
функцией SendMessage().

Теперь присмотримся внимательнее к функции capCreateCaptureWindow(). Ей
требуется передать шесть аргументов:

  1. lpszWindowName – нуль-терминальная строка, содержащая имя окна захвата;
  2. dwStyle – стиль окна;
  3. x – координата X;
  4. y – координата Y;
  5. nWidth – ширина окна;
  6. nHeight – высота окна;
  7. hWnd – handle родительского окна;
  8. nID – идентификатор окна.

Результатом выполнения функции будет handle созданного окна или NULL в случае
ошибки. Поскольку эта функция также относится к WinAPI, то ее опять-таки нужно
импортировать. Код импортирования приводить не буду, поскольку он практически
идентичен тому, что я писал для функции capGetDriverDescription(). Лучше сразу
взглянем на процесс инициализации камеры:

deviceHandle = capCreateCaptureWindowA (ref deviceIndex, WS_VISIBLE |
WS_CHILD, 0, 0, windowWidth, windowHeight, handle, 0);

if (SendMessage(deviceHandle, WM_CAP_DRIVER_CONNECT, this.index, 0) > 0)
{
SendMessage(deviceHandle, WM_CAP_SET_SCALE, -1, 0);
SendMessage(deviceHandle, WM_CAP_SET_PREVIEWRATE, 0x42, 0);
SendMessage(deviceHandle, WM_CAP_SET_PREVIEW, -1, 0);

SetWindowPos(deviceHandle, 1, 0, 0, windowWidth, windowHeight, 6);
}

В этом коде сразу после создания окна производится попытка отправки сообщения
WM_CAP_DRIVER_CONNECT. Отличный от нуля результат выполнения функции расскажет
нам о ее успешности.

Теперь представим, что сегодня боги на нашей стороне и произведем
незамедлительную отправку нескольких сообщений: WM_CAP_SET_SCALE,
WM_CAP_SET_PREVIEWRATE, WM_CAP_SET_PREVIEW. Увы, как и в случае с функциями, C#
ничего не знает о существовании этих констант. Тебе опять придется определять их
самостоятельно. Список всех необходимых констант с комментариями я привел ниже.

//Пользовательское сообщение
private const int WM_CAP = 0x400;
//Соединение с драйвером устройства видеозахвата
private const int WM_CAP_DRIVER_CONNECT = 0x40a;
//Разрыв связи с драйвером видеозахвата
private const int WM_CAP_DRIVER_DISCONNECT = 0x40b;
//Копирование кадра в буффер обмена
private const int WM_CAP_EDIT_COPY = 0x41e;
//Включение/отключение режима предпосмотра
private const int WM_CAP_SET_PREVIEW = 0x432;
//Включение/отключение режима оверлей
private const int WM_CAP_SET_OVERLAY = 0x433;
//Скорость previewrate
private const int WM_CAP_SET_PREVIEWRATE = 0x434;
//Включение/отключение масштабирования
private const int WM_CAP_SET_SCALE = 0x435;
private const int WS_CHILD = 0x40000000;
private const int WS_VISIBLE = 0x10000000;
//Установка callback-функции для preview
private const int WM_CAP_SET_CALLBACK_FRAME = 0x405;
//Получение одиночного фрейма с драйвера видеозахвата
private const int WM_CAP_GRAB_FRAME = 0x43c;
//Сохранение кадра с камеры в файл
private const int WM_CAP_SAVEDIB = 0x419;

Дальнейшее описание класса для работы с веб-камерой я опущу. Каркас я
рассмотрел, а со всем остальным ты легко разберешься путем раскуривания моего
хорошо прокомментированного исходника. Единственное, что я не хотел бы оставлять
за кадром – это пример использования библиотеки.

Всего в библиотеке я реализовал (точнее, дописал) пару методов: GetAllDevices
(уже рассматривали), GetDevice (получение драйвера устройства видеозахвата по
индексу), ShowWindow (отображение изображения с веб-камеры), GetFrame (захват
отдельного кадра в графический файл) и GetCapture (захват видеопотока).

В качестве демонстрации работоспособности изготовленной либы я набросал
небольшое приложение. На форме я расположил один компонент ComboBox
(используется для хранения списка имеющихся устройств видеозахвата) и несколько
кнопок – "Обновить", "Пуск", "Остановить" и "Скриншот". Ах да, еще на моей форме
пестреет компонент Image. Его я применяю для отображения видео с камеры.

Разбор полетов начнем с кнопки "Обновить". По ее нажатию я получаю список
всех установленных устройств видеозахвата. Начинка этого обработчика события:

Device devices = DeviceManager.GetAllDevices();
foreach (Device d in devices)
{
cmbDevices.Items.Add(d);
}

Правда, все просто? Разработанная нами библиотека берет на себя все черную
работу и нам остается лишь наслаждаться объектно-ориентированным
программированием. Еще проще выглядит код для включения отображения видеопотока
с камеры:


selectedDevice.ShowWindow(this.picCapture);

Опять же, все проще пареной репы. Ну и теперь взглянем на код кнопки "Скриншот":

Device selectedDevice = DeviceManager.GetDevice(cmbDevices.SelectedIndex);
selectedDevice.FrameGrabber();

Я не стал уделять особого внимания методу FrameGrabber(). В моем исходнике
вызов метода приводит к сохранению текущего кадра прямо в корень системного
диска. Разумеется, это не очень корректно, поэтому перед боевым применением
программы не забудь внести все необходимые поправки.

Готовность № 3

Теперь настало время поговорить о том, как соорудить простенькую, но надежную
систему видеонаблюдения. Обычно такие системы базируются на двух алгоритмах:
различие двух фреймов и простое моделирование фона. Их реализация (код)
достаточно объемна, поэтому в самый последний момент я решил пойти по более
простому пути. Под легким путем подразумевается использование мощного, но пока
малоизвестного фреймворка для.NET – AForge.NET.

AForge.NET в первую очередь предназначен для разработчиков и исследователей.
С его помощью, девелоперы могут существенно облегчить свой труд при разработке
проектов для следующих областей: нейросети, работа с изображениями (наложение
фильтров, редактирование изображений, попиксельная фильтрация, изменение
размера, поворот изображения), генетика, робототехника, взаимодействие с видео
устройствами и т.д. С фреймворком поставляется хорошая документация. В ней
описаны абсолютно все возможности продукта. Не поленись хорошенько с ней
ознакомиться. Особенно мне хочется отметить качество кода этого продукта. Все
написано цивильно и копаться в коде – одно удовольствие.

Теперь вернемся к нашей непосредственной задаче. Скажу честно, средствами
фреймворка она решается как дважды два. "Тогда зачем ты мне парил мозг WinAPI
функциями?" – недовольно спросишь ты. А за тем, чтобы ты не был ни в чем
ограничен. Сам ведь знаешь, что проекты бывают разные. Где-то удобнее применить
махину.NET, а где-то проще обойтись старым добрым WinAPI.

Вернемся к нашей задачке. Для реализации детектора движений нам придется
воспользоваться классом MotionDetector из вышеупомянутого фреймворка. Класс
отлично оперирует объектами типа Bitmap и позволяет быстренько вычислить процент
расхождения между двумя изображениями. В виде кода это будет выглядеть примерно
так:

MotionDetector detector = new MotionDetector(
new TwoFramesDifferenceDetector(),
new MotionAreaHighlighting());

//Обработка очередного кадра
if (detector != null)
{
float motionLevel = detector.ProcessFrame(image);

if (motionLevel > motionAlarmLevel)
{
flash = (int) (2 * (1000 / alarmTimer.Interval));
}

if (detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing)
{
BlobCountingObjectsProcessing countingDetector = (BlobCountingObjectsProcessing)
detector.MotionProcessingAlgorithm;
objectsCountLabel.Text = "Objects: " + countingDetector.ObjectsCount.ToString(
);
}
else
{
objectsCountLabel.Text = "";
}

Вышеприведенный код (не считая инициализацию класса MotionDetector) у меня
выполняется при получении очередного кадра с веб-камеры. Получив кадр, я
выполняю банальное сравнение (метод ProcessFrame): если значение переменной
motionlevel больше motionLevelAlarm (0.015f), то значит, надо бить тревогу!
Движение обнаружено. На одном из скришотов хорошо видна работа демонстрация
детектора движений.

Готовность №4

Веб-камеру можно запросто приспособить для распознавания лиц и создания
продвинутого способа лог-она в систему? Если переварив весь этот материал, ты
думаешь, что это сложно, то ты ошибаешься! В конце марта на сайте
http://codeplex.com (хостинг
для OpenSource проектов от MS) появился пример (а затем и ссылка на статью),
демонстрирующий реализацию программы для распознавания лиц с использованием
веб-камеры. Сам пример основан на использовании новых возможностей.NET и
SilverLight. Разобрать этот пример в рамках журнальной статьи нереально, так как
автор исходника постарался и сделал все максимально шикарно. Тут тебе и
алгоритмы для работы с изображениями (фильтр размытия, уменьшения шума,
попиксельное сравнение, растяжка и т.д.) и демонстрация новинок SilverLight и
много чего еще. Одним словом, must use! Ссылку на проект и статью ищи ниже.

Конец фильма

Приведенные в статье примеры послужат тебе хорошей отправной точкой. На их
основе легко сварганить как профессиональную утилиту для работы с веб-камерой, и
поднимать на ее продаже несколько сотен баксов в квартал или написать хитрого и
злобного трояна-шпиона.

Вспомни статью про . В ней я говорил, что времена клавиатурных шпионов уже прошли.
Сейчас особенно актуальны аудио и видеоданные. Если учесть, что сегодня
веб-камера – обязательный атрибут любого ноутбука, то нетрудно представить,
сколько интересного видео ты сможешь заснять, подсунув жертве "полезную
программку"… Однако я тебе этого не говорил:). Удачи в программировании, а
будут вопросы – пиши.

WWW

http://blogs.msdn.com/
– Русская версия статьи "Silverlight 4 real-time Face Detection"
(распознавание лиц в реальном времени при помощи SilverLight).


http://facelight.codeplex.com/ – здесь хостится проект "Facelight",
позволяющий распознавать лица в реальном времени. Если ты собрался закодить
серьезную софтину для определения лиц или логона в систему, то посмотреть на
этот проект просто обязан.


http://www.aforgenet.com/framework/ – тут ты
найдешь AForge .NET – отличный и простой в использовании фреймворк для работы с
видео, изображениями и т.д.

http://vr-online.ru
– все исходники примеров, а также кучу дополнительной информации ты
можешь слить с сайта проекта VR-Online.