СИСТЕМЫ ТЕХНИЧЕСКОГО ЗРЕНИЯ

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

ОЦИФРОВКА ИЗОБРАЖЕНИЯ В СЕТИ

Конверсию изображения в числовую матрицу с сохранением ее на сетевом диске позволяет выполнить команда 'WR'=send('image.jpg:R'), слева указано имя xml-файла WR.xml, справа опция RGB-палитры. Для конверсии в оттенки серого опция не нужна. В пределах книги имена файлов не следует повторять. Обработка большого массива пикселей занимает много времени, для экспериментов с обработкой картинок опцией через двоеточие указывается шаг смежности, чтобы пропускать строчки и столбцы.


'WR'=send('image.jpg:R:4')

ЧТЕНИЕ ДАННЫХ И ОБРАБОТКА

Рисунок WR:M обработанного массива выводится []-тегом g, вместо уже привычного на форумах img в квадратных скобках. Опцией через двоеточие уточняется вид графика. M (от MESH) означает вывод трехмерного графика:

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


WR=receive('WR'), n=norm(WR), n=?

ПЕРЕДАЧА ДАННЫХ НА СЕРВЕР

Методы передачи изображения на сервер могут быть самыми разнообразными. В сети существует предложение драйвера Dorgem, позволяющего циклически сбрасывать изображение по FTP-каналу. Большими возможностями обладают скриптовые студии.

Cистема Visual Matlab имеет несколько конфигураций, ориентированных на разные классы задач, в частности, вебкамеру обслуживает pcMatLab.exe. Сбор информации идет в цикле с паузой (в секундах):

do
X=read('camera.bmp:2')
e=write(0,'camera:file=image.jpg')
open background image.jpg [:], show
pause 1
end

Команда X=read('camera.bmp:2') читает изображение с коэффициентом уменьшения 2, этот параметр может отсутствовать. Некоторые драйверы вебкамер работают в асинхронном режиме и требуют контроля считываемости сравнением нормы разности двух соседних картинок, что в скриптовой системе сделать несложно.

Команда e=write(0,'camera:file=image.jpg') записывает изображение на жесткий диск в тот каталог, где размещается программа. Отладочное усечение e=write(0,'camera:') передает информацию прямо на экран. В хэлпе студии есть редко используемые опции коррекции ширины и высоты экрана. Есть дополнительная пара команд визуализации open background image.jpg [:] и show.

e=write(0,'folder=каталог_file=image.jpg') позволяет записать вызовом утилиты image.php фото в каталог (folder) конкретной вебкниги. В приемном каталоге зарезервировано стандартное наименование для изображения вебкамеры image.jpg.

Для синхронизации посылов можно использовать часы компьютера студии, возвращает значение времени функция clock(номер часовой стрелки): часы - это 1, минуты - это 2, секунды - это 3. Обычно время в секундах делится на нужный нам интервал и если деление происходит нацело, посылается информация на сервер.

Радиомодем запускается командой e=exe('программа связи'). Есть команды чтения и записи текстовой информации на сервер, отмеченные в справочнике команд. Это позволяет контролировать файлы 'флажки', т.е. факт наличия связи. Если модем прервал связь, его следует перезапустить.

ВИДЕОМОНИТОРИНГ

В сценарии вывода полученного изображения на интернет-сервере через двоеточие можно указать ширину и высоту всплывающего (pop-up) окна картинки image=window(W:H). Если передающая сторона обновляет картинку image.jpg, несложно организовать мониторинг.


if tick<5, image=window(340:280), 
tick=?, ticker(2000), % пауза рестарта в микросекундах, 
end

Подцикливает программу функция ticker(T), где T - устанавливаемый период задержки. В исполнительном модуле генерируется кнопка stop, чтобы остановить таймер. Переменная tick принимает значения счетчика повторений, поэтому количество циклов можно ограничить.



Rambler's Top100