67
1 © 2013 The MathWorks, Inc. Обработка изображений и видео в MATLAB Михаил Шпак Инженер департамента MathWorks

Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

  • Upload
    others

  • View
    77

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

1 © 2013 The MathWorks, Inc.

Обработка изображений и

видео в MATLAB

Михаил Шпак

Инженер департамента

MathWorks

Page 2: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

2

Ключевые отрасли

Авиа, космос и оборонная промышленность

Автомобильная промышленность

Образование

Электроника и полупроводники

Связь

Финансовый сектор

Автоматизация промышленного оборудования

ТЭК

Биотехнологии и фармацевтика

Page 3: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

3

Code and Applications

Files

Software

Hardware

Доступ к

данным

Code & Applications

Анализ

Моделирование

и анализ данных

Разработка

алгоритма

Разработка

приложения

Отчеты и

документация

Выходные данные

для разработки

Развертывание

Совместная

работа

Процесс решения инженерной задачи

Автоматизация

Page 4: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

4 © 2013 The MathWorks, Inc.

Обработка изображений в

MATLAB

Page 5: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

5

Где может использоваться обработка

изображений?

Page 6: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

6

Основные сферы применения обработки

изображений

Сегментация

Восстановление резкости шумоподавление

Измерение элементов изображений

Детектирование границ объектов

Морфологические операции

Усиление контраста

Регистрация изображений

Геометрические трансформации

Page 7: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

7

Сложности, возникающие при работе с

изображениями

Чтение и запись файлов различных форматов

Визуализация изображений и промежуточных

результатов

Тестирование пробных сценариев обработки

Определение причин неработоспособности алгоритмов

Работа с большими изображениями при ограниченной

оперативной памятью

Ускорение алгоритмов

Page 8: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

8

Image Processing Toolbox

Предназначен для обработки, анализа, визуализации изображений и разработки алгоритмов

Анализ изображений

Улучшение изображений

Геометрические преобразования

Совмещение изображений

Морфологические операции

Выделение объектов

Воспроизведение и исследование изображений

Page 9: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

9

Простые примеры: Цветовое

детектирование

Page 10: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

10

Простые примеры: Морфологические

операции

Поиск пути в совершенном лабиринте:

• 1 вход, 1 выход

• единственный вариант решения

Page 11: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

11

Пример: Моделирование работы

процессора фотокамеры

От сенсора к экрану

Объект Его изображение

Page 12: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

12

Эталонные значения для цветовой таблицы

R G B 115 81 67

196 149 129

93 123 157

90 108 65

130 129 176

99 191 171

220 123 45

72 92 168

195 84 98

91 59 105

160 189 62

229 161 41

43 62 147

71 149 72

176 48 56

238 200 22

188 84 150

0 136 166

245 245 240

200 201 201

160 161 161

120 121 121

83 84 85

50 50 50

Page 13: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

13

Снимок цветовой таблицы

Page 14: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

14

Поиск центра каждой ячейки

Page 15: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

15

Нахождение кривой для сопоставления

данных с камеры эталонным значениям

Page 16: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

16

1. Шумоподавление

2. Интерполяция

3. Отображение цветов

4. Баланс белого

5. Коррекция яркости

Итого по примеру: Работа процессора

камеры

Page 17: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

17

В каких областях работают с большим

изображениями?

Спутниковые снимки

Аэрофотосъёмка

Сверхвысокое разрешение

Стеки и наборы изображений

Объёмные данные

Мультиспектральные и

гиперспектральные изображения

Коллажи и панорамные изображения

Page 18: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

18

Частые проблемы при работе с

большими изображениями

Ошибки “Out of memory”

Медленная работа

Page 19: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

19

Как с ними правильно работать?

С помощью команды memory можно посмотреть

доступные ресурсы

Выделять память для переменных

Используйте меньшие типы данных

Загружайте изображение порциями

Визуализируйте только то, что необходимо

Используйте дополнительные аппаратные ресурсы

Может привести

к усложнению

кода

Page 20: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

20

Последствия динамического изменения

размера массивов

>> x = 4

>> x(2) = 7

>> x(3) = 12

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

4 4

4

7

4

7

4

7

12

X(3) = 12 X(2) = 7

Page 21: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

21

Что дает предварительное выделение

памяти

>> x = zeros(3,1)

>> x(1) = 4

>> x(2) = 7

>> x(3) = 12

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

0

0

0

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

0

0

0

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

0x0000

0x0008

0x0010

0x0018

0x0020

0x0028

0x0030

0x0038

4

0

0

4

7

0

4

7

12

Page 22: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

22

blockproc и rsetwrite

Блочная обработка

– Автоматически делит изображение

на блоки для обработки

– Уменьшает использование памяти

– Позволяет обрабатывать сколь

угодно большие изображения

Понижение разрешения

– Позволяет избежать

переполнения памяти при

визуализации больших изображений

Page 23: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

23

Пример: Блочная сегментация с blockproc

Page 24: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

24

Увеличение производительности

MATLAB

– Выделение памяти

– Определение узких мест с помощью Profiler-а

– Векторизация кода

Image Processing Toolbox

– Скорость работы многих функций увеличивается от релиза к

релизу

Parallel Computing Toolbox

– Использование многоядерных процессоров, кластеров и GPU

Page 25: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

25

Worker Worker

Worker

Worker

Worker Worker

Worker

Worker

Parallel Computing Toolbox

Выходя за пределы последовательных

вычислений в приложениях MATLAB

TOOLBOXES

BLOCKSETS

Page 26: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

26

Parallel Computing позволяет…

Larger Compute Pool Larger Memory Pool

11 26 41

12 27 42

13 28 43

14 29 44

15 30 45

16 31 46

17 32 47

17 33 48

19 34 49

20 35 50

21 36 51

22 37 52

Ускорять вычисления Работать с большими

массивами данных

Page 27: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

27

Увеличение вычислительного пула

Время Время

Проц

ессы

Page 28: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

28

Пример: Моделирование работы процессора

фотокамеры и параллельные вычисления

Page 29: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

29

Поддержка GPU

Поддержка встроенных функций MATLAB для

работы с GPU – conv2, filter2, …

Поэлементное выполнение поддерживаемого кода

MATLAB на GPU – arrayfun

Создание CUDA-ядер из существующего кода

CUDA и PTX файлов

Запуск CUDA-ядер на GPU из MATLAB

Page 30: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

30

В чем выгода использования GPU?

Ускорение выполнения задач с большим

количеством вычислений

например:

– Производительность: A\b с двойной точностью

Page 31: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

31

Image Acquisition Toolbox

Передача изображений и видео сразу в MATLAB и Simulink

Настройка конфигурации камеры

Фоновая передача

Синхронизация многомодовых устройств

Конфигурирование, получение и предпросмотр видеоданных в реальном времени через графический интерфейс

Page 32: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

32

Поддерживаемые устройства в

Image Acquisition Toolbox

Поддержка промышленных стандартов:

– Frame grabbers

Analog

Camera Link

– DCAM compatible FireWire (IIDC 1394)

– GigE Vision

– Common OS webcam interfaces

Поддержка

операционных систем

– Windows

– Linux

– Macintosh

Page 33: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

33

Производители:

– Allied Vision Technologies

– Basler

– Baumer

– DALSA

– FLIR

– Hamamatsu

– Lumenera

– Matrox Imaging

– National Instruments

– PixeLINK

– Point Grey

– Qimaging

– Sony

Дополнительная информация на сайте MathWorks

Поддерживаемые устройства в

Image Acquisition Toolbox

Page 34: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

34

В чём преимущества MATLAB

для обработки изображений?

Поддержка множество форматов файлов

Интерактивные визуализация и анализ изображений

Прямое подключение к камерам и платам захвата

изображения

Большая библиотека встроенных функций

Быстрое построение пользовательских алгоритмов

обработки изображений

Блочная обработка чтобы избежать проблем с

нехваткой памяти

Ускорение работы с изображениями с помощью

многоядерных машин и кластеров

Page 35: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

35 © 2013 The MathWorks, Inc.

Обработка видео и

компьютерное зрение в

MATLAB

Page 36: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

36

Типичные задачи обработки видео

Преобразование между

цветовыми пространствами

Повышение контраста видео

Выполнение сегментации

Устранение чересстрочной развёртки

Сбор видео статистики

Наложение текста и графики

Page 37: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

37

Сложности обработки видео

Доступ к видео данным и их анализ

Управление буферами и промежуточного

хранения данных

Тестирование и верификация в

условиях реального мира

Использование стандартных видео алгоритмов

Отображение промежуточных результатов

Page 38: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

38

Пример: Работа с видео в MATLAB

Чтение и запись данных с помощью VideoReader и

VideoWriter

Что произойдёт в случае очень длинного видео или

большого размера кадра?

Page 39: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

39

Источник

MATLAB

Алгоритм

обработки

память

Загрузка целого файла и обработка его за раз …

Пакетная обработка

Page 40: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

40

MATLAB Память

Потоковый

источник

4

0

Обработка одного кадра за раз…

Потоковая

обработка

Потоковая обработка

Page 41: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

41

4

1

Создание и настройка объекта reader = vision.VideoReader(‘viptraffic.avi’)

Выполнение в цикле step(reader)

Другие доступные методы Reset, isDone, close

Системные объекты (System objects)

Определение

“Объекты MATLAB которые представляют

собой алгоритмы, источники или

приемники, привязанные к времени и

управляемые данными”

Page 42: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

42

Обычная обработка видео в MATLAB

Необходимость

поддерживать буфер

Явная индексация

Явное управление состояниями

myVid = VideoReader(‘myvideofile.avi’);

numFrames = myVid.NumberOfFrames;

numIter = 10;

opticalFlowIn = zeros([size(currentFrame) 5]);

opticalFlowOutput = zeros([size(currentFrame) numFrames]);

i = 1;

while i <= numFrames

opticalFlowIn(:,:,2:end) = opticalFlowIn(:,:,1:end-1);

opticalFlowIn(:,:,1) = read(myVid,i);

flow = opticalFlow(opticalFlowIn(:,:,1),opticalFlowIn(:,:,5),…

‘horn-schunck’,numIter,‘magitude-squared’);

opticalFlowOutput(:,:,i) = flow;

i = i+1;

end

implay(opticalFlowOutput,30)

Page 43: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

43

Обработка видео с использованием

System Objects

Инициализация

объектов

Код “внутри цикла” намного проще

Неявные состояния, буферизация и

индексация

Видеоплеер работает в цикле

reader = vision.VideoFileReader

reader.Filename = ‘myvideofile.avi’;

viewer = vision.DeployableVideoPlayer(‘framerate’,30);

optical = vision.OpticalFlow

optical.Method = ‘horn-schunck’;

optical.OutputValue = ‘Magitude-squared’;

optical.ReferenceFrameDelay = 3;

optical.MaximumIterationCount = 10;

while ~isDone(reader)

currentFrame = step(reader);

OF = step(optical, currentFrame);

step(viewer, OF);

end

Page 44: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

44

Типичные стадии работы алгоритма

компьютерного зрения

1. Захват изображения/видео

2. Предварительная обработка

3. Определение признаков

4. Выделение признаков

5. Сопоставление признаков

6. Использование признаков

– Стабилизация, монтаж

– Построение стерео-изображения

7. Классификация признаков

Image Acquisition Toolbox

Statistics Toolbox

Image Processing Toolbox

Computer Vision

System Toolbox

Page 45: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

47

Ввод/вывод мультимедиа файлов

Отображение видео

Наложение текста и графики

Пре-процессинг и пост-

процессинг

Обработка движущихся объектов

Обнаружение и отслеживание

объектов

Распознавание объектов

Компьютерное зрение

47

Разработка и моделирование систем

обработки видео и изображений

Computer Vision System Toolbox

Примеры использования системных объектов

Page 46: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

48

Пример: Детектирование объектов с

использованием оптического потока

Используется оптический поток для определения

и подсчёта движущихся автомобилей на шоссе

Page 47: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

49

Особенности объектов используемые в

задачах детектирования

Грани

Углы

Шаблоны

SURF

MSER

Page 48: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

50

Пример: Создание мозаичного изображения

• Поиск узловых точек

• Поиск соответствий в узлах двух

изображений

• Оценка геометрических искажений

• Наложение двух изображений

Page 49: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

51

Пример: Стабилизация движения камеры

• Шаблон – рамка номера

автомобиля

• Поиск только по определённой

динамической области

• Определение смещения

объекта между кадрами

• Стабилизация

Page 50: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

52 © 2013 The MathWorks, Inc.

От алгоритма

-

к внедрению

Page 51: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

53

MATLAB Compiler

COM

Excel Add-in

Java www

.NET .exe .dll

.lib

COM Excel Add-in

Java www

MATLAB Builder EX

MATLAB Builder NE

MATLAB Builder JA

.NET .exe .dll

.lib

MATLAB Compiler

From MATLAB to Implementation

C

Code

Simulink

Coder

HDL

Code

C

Code

MATLAB Coder

.exe .dll

.mex

Simulink HDL Coder

Simulink & Stateflow

Page 52: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

54

MATLAB Compiler

Автоматический перевод ваших программ на

MATLAB в независимые приложения и разделяемые

библиотеки

Полная поддержка языка MATLAB и большинства

тулбоксов

Безвозмездное распространение

Page 53: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

55

MATLAB Coder

Генерация C и C++ кода из кода MATLAB

Работа с проектом в MATLAB

Быстрый перевод в C/C++

Верификация сгенерированного кода

Ускорение вычислительно

интенсивных частей кода MATLAB

Систематическое тестирование

Использование времени не на

низкоуровневое программирование,

а на улучшение алгоритмов в MATLAB

Совместим с Computer Vision

System Toolbox

Page 54: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

56

MATLAB Compiler

.exe .dll

MATLAB Coder

.exe .lib

MATLAB Compiler и MATLAB Coder

.dll

Page 55: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

57

Java

visualization

graphics

nested functions

sparse

variable-sized data

arrays

struct

numeric

fixed-point

functions

complex

System objects

global

persistent

malloc

classes

Поддерживаемые конструкции языка

MATLAB для генерации кода

Page 56: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

58

Поддерживаемые возможности и

функции MATLAB

Широкий набор поддерживаемых возможностей и

функций/системных объектов для генерации кода

Матрицы и

массивы Типы данных

Программные

конструкции Функции

• Матричные

операции

• N-мерные массивы

• Индексация

• Фреймы

• Хранимые

переменные

• Глобальные

переменные

• Комплексные числа

• Целочисленная

арифметика

• Двойная/одинарная

точность

• Операции с

фиксированной точкой

• Символы

• Структуры

• Числа

• Данные переменного

размера

• MATLAB Class (MCOS)

• Системные объекты

• Арифметические,

сравнительные,

логические операторы

• Циклы

(if, for, while, switch)

• Функции и подфункции MATLAB

• Переменный размер числа

аргументов

• Function handles

Поддерживаемые алгоритмы

• > 400 операторов и функций

MATLAB

• > 200 системных объектов для

• Обработки сигналов

• Систем связи

• Компьютерного зрения

Page 57: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

59

MATLAB Compiler и MATLAB Coder

Вывод Исполняемый файл или

библиотека/компонент

Портируемый и

читаемый C код

Поддержка языка MATLAB Полная Сокращенная

Дополнительные

библиотеки

MATLAB Compiler

Runtime (MCR) Нет

Поддерживаемые

тулбоксы Большинство тулбоксов Некоторые тулбоксы

Схема лицензирования Безвозмездная Безвозмездная

Расширения Builder Products Embedded Coder

MATLAB Compiler MATLAB Coder

Page 58: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

60 © 2013 The MathWorks, Inc.

Запуск моделей Simulink на целевых

платформах

Page 59: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

61

>> targetinstaller

Page 60: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

62

Installed Components Simulink Block Libraries

Page 61: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

63

BeagleBoard

BeagleBoard – недорогая плата на основе процессора

TI ARM-Cortex A8 для обработки сигналов и видео

Page 62: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

64

BeagleBoard

BeagleBoard xM поддерживает аудио входы-выходы,

Web-камеры и видео-выходы, Ethernet и несколько USB

Page 63: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

65

Обучение в ходе реализации проектов Почему это интересно?

BeagleBoard

– Эффективный способ обучения методом проектов,

реализация работы с аудио и видео

– Недорогой, одноплатный компьютер созданный для

обработки аудио, видео и других цифровых сигналов

– Внедрение промышленных методик по использованию

Simulink для разработки алгоритмов и дальнейшей их

проверке на «железе»

Page 64: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

66

От модели к встраиваемым приложениям

Page 65: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

67

Задача детектирования объектов

Page 66: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

68

Семейство продуктов MathWorks

Семейство продуктов Simulink Сферы применения

Семейство продуктов MATLAB

Page 67: Обработка изображений и видео в MATLABвизуализации больших изображений ... Потоковая обработка. 4 41 1 Создание

69

Контактная информация департамента

The Mathworks

Web: www.sl-matlab.ru,

E-mail: [email protected]

Тел: +7 (495) 232 00 23 доб. 0609

Дополнительная информация: www.mathworks.com