Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Поиск длины маятника в движении




Проведем захват серии изображений с помощью пакета Image Acquisition Toolbox и затем проанализируем их с помощью Image Processing Toolbox. Рассмотрим это на примере задачи по вычислению длины маятника в движении.
Содержание

  • Шаг 1: Захват изображений.
  • Шаг 2: Выбор области колебания маятника.
  • Шаг 3: Сегментация маятника в каждом фрейме.
  • Шаг 4: Поиск центра сегментированного маятника в каждом фрейме.
  • Шаг 5: Вычисление радиуса колебания маятника.
Шаг 1: Захват изображений. Считываем кадры изображений маятника в движении. Кадры изображений, после их захвата с помощью Image Acquisition Toolbox, хранятся в виде MAT-файла pendulum.mat. % Доступ к захваченным изображениям (видеообъектам).% vidobj=videoinput('winvideo', 1, 'RGB24_352x288');% Формирование объекта на основе пяти фреймов.% set(vidobj, 'FrameGrabInterval', 5);% Формирование большего числа фреймов.% nFrames=50;% set(vidobj, 'FramesPerTrigger', nFrames);% Доступ к видеоустройству.% src=getselectedsource(vidobj);% Настройка исходного устройства на формирование 30 кадров в секунду.% set(src, 'FrameRate', '30');% Открытие окна просмотра.% preview(vidobj);% Начало захвата изображений.% start(vidobj);% Определение окончания захвата данных.% wait(vidobj, 10);% Извлечение фреймов из памяти.% frames=getdata(vidobj);% Удаление рабочих переменных.% delete(vidobj)% clear vidobj% Считывание MAT-файла.load pendulum;immovie(frames);

Шаг 2: Выбор области колебания маятника. Мы можем наблюдать колебания маятника в верхней половине каждого кадра в серии изображений. Создадим новую серию кадров, которая содержит только область с колеблющимся маятником.При создании новой серии изображений используем функцию imcrop. nFrames=size(frames, 4);first_frame=frames(:,:,:, 1);first_region=imcrop(first_frame, rect);frame_regions=repmat(uint8(0), [size(first_region) nFrames]);for count=1:nFrames frame_regions(:,:,:, count)=imcrop(frames(:,:,:, count), rect);endimmovie(frame_regions);

Шаг 3: Сегментация маятника в каждом фрейме.
Отметим, что маятник представлен в виде потемнения на фоне. Операцию сегментирования можно провести, преобразив фрейм в полутоновое изображение и далее использовать функцию im2bw с некоторым порогом. Далее нужно удалить фон с помощью функций imopen и imclearborder.

% Получение массива, содержащего сегментированное изображение маятника. seg_pend=false([size(first_region, 1) size(first_region, 2) nFrames]);centroids=zeros(nFrames, 2);se_disk=strel('disk', 3);for count=1:nFrames fr=frame_regions(:,:,:, count); imshow(fr) pause(0.2) gfr=rgb2gray(fr); gfr=imcomplement(gfr); imshow(gfr) pause(0.2) bw=im2bw(gfr,.7); % пороговая обработка bw=imopen(bw, se_disk); bw=imclearborder(bw); seg_pend(:,:, count)=bw; imshow(bw) pause(0.2)end





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 433 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

4188 - | 4140 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.