Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 08.05.2014
Сообщений: 17

Оптический поток

14.06.2014, 01:00. Показов 1630. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужен совет, как переписать этот код, по которому захватывается видео с подключенной камеры и рисуются линии оптического потока, под загружаемое видео такого же разрешения?
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
vidDevice = imaq.VideoDevice('winvideo', 2, 'RGB24_640x480', ...
'ROI', [1 1 640 480], ...
'ReturnedColorSpace', 'rgb', ...
'DeviceProperties.Brightness', 130, ...
'DeviceProperties.Sharpness', 12);
optical = vision.OpticalFlow( ...
'OutputValue', 'Horizontal and vertical components in complex form');
maxWidth = imaqhwinfo(vidDevice,'MaxWidth');
maxHeight = imaqhwinfo(vidDevice,'MaxHeight');
shapes = vision.ShapeInserter;
shapes.Shape = 'Lines';
shapes.BorderColor = 'white';
r = 1:5:maxHeight;
c = 1:5:maxWidth;
[Y, X] = meshgrid(c,r);
hVideoIn = vision.VideoPlayer;
hVideoIn.Name  = 'Original Video';
hVideoOut = vision.VideoPlayer;
hVideoOut.Name  = 'Motion Detected Video';
% Настройки для показа
nFrames = 0;
while (nFrames<inf)    
    % отображение.
    rgbData = step(vidDevice);
 
    % вычисление опт потока.
    optFlow = step(optical,rgb2gray(rgbData));
 
    % Downsample оптического потока.
    optFlow_DS = optFlow(r, c);
    H = imag(optFlow_DS)*50;
    V = real(optFlow_DS)*50;
 
    % линии
    lines = [Y(:)'; X(:)'; Y(:)'+V(:)'; X(:)'+H(:)'];
    rgb_Out = step(shapes, rgbData,  lines');
 
    % показ видео
    % Оригинальное видео.
    step(hVideoIn, rgbData);
    % Видео с векторами движения.
    step(hVideoOut, rgb_Out);
 
    % Инкремент фреймов
    nFrames = nFrames + 1;
end
Добавлено через 6 минут
В недрах матворкса есть некоторый пример, в котором то что мне нужно, и видео загружаемое и оптический поток. Но во-первых этот алгоритм работает почему-то только с Intensity, а с полноцветным RGB не желает. Во-вторых, он подбит на видео малого разрешения 160х120 и при загрузке видео большего (640х480) линии рисуются только в левом верхнем углу, а не по всему размеру кадра. Как исправить эти недоразумения?
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
videoReader = vision.VideoFileReader('viptraffic.avi','ImageColorSpace','Intensity','VideoOutputDataType','uint8');
converter = vision.ImageDataTypeConverter; 
opticalFlow = vision.OpticalFlow('ReferenceFrameDelay', 1);
opticalFlow.OutputValue = 'Horizontal and vertical components in complex form';
shapeInserter = vision.ShapeInserter('Shape','Lines','BorderColor','Custom', 'CustomBorderColor', 255);
videoPlayer = vision.VideoPlayer('Name','Motion Vector');
while ~isDone(videoReader)
    frame = step(videoReader);
    im = step(converter, frame);
    of = step(opticalFlow, im);
    lines = videooptflowlines(of, 20);
    if ~isempty(lines)
      out =  step(shapeInserter, im, lines); 
      step(videoPlayer, out);
    end
end
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2014, 01:00
Ответы с готовыми решениями:

оптический поток
Здравствуйте есть добровольцы, кто поможет понять 7 строчек из линейной алгебры?) понять - имеется ввиду немного на пальцах объяснить...

Оптический датчик
Вопрос простой. Нужно сделать примитивную схему реагирования на пересечение непрозрачным предметом невидимого луча, аля сигнализация и т.д....

Оптический S/PDIF
Всем привет! Приобрёл материнку Z370 Aorus Gaming K3. На плату установлен хороший аудиочип - Realtek ALC1220, но отсутствует...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2014, 01:00
Помогаю со студенческими работами здесь

Оптический прерыватель
Добрый день, форумчане! Прошу помощи у спецов программирования. Сам не могу справиться- не хватает знаний программирования Ардуино. Есть...

Оптический "Компас"
Если взять любой фотодатчик, например фотодиод (хотя надо бы что нибудь более линейное). Так вот, проворачиваем его по кругу. Получаем...

датчик оптический
отражения посоветуйте недорогой типа tcrt5000 только чтобы расстояние 50-60 мм.

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

оптический ключ
Каким образом защищен замок от изменения скорости вставки-извлечения изображенного на рисунке ключа?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru