
- •Часть 1: Пакет matlab
- •1. Начальные сведения о математическом пакете matlab
- •1.2. Редактор командной строки
- •2. Основные конструкции matlab
- •2.1. Форматы представления чисел и типы данных, используемых при обработке изображений
- •2.2. Массивы.
- •2.3. Операторы
- •2.3.1. Операции с числами
- •2.3.2 Операции с матрицами
- •2.3.3. Операторы сравнения для массивов
- •2.3.4. Логические операторы
- •2.4. Символьные вычисления
- •3. Основные команды для цифровой обработки изображений
- •3.1. Цифровое представление изображения и математическая модель цвета.
- •3.2. Цифровое представление изображения в matlab
- •Бинарные изображения
- •3.3.5. Поворот изображения
- •4. Программирование в matlab
- •4.1. Внешние текстовые файлы
- •4.2. Условный оператор и оператор цикла
- •4.3. Работа с m-файлами
- •4.4. Пример m-файла. Умножение изображений
- •5. Визуализация результатов вычислений
- •5.1. Команда Plot
- •5.2. Настройка параметров графического вывода команды plot
- •5.6. Отображение радиус – векторов
- •5.7. Построение узлов разбиения прямоугольной области.
- •6. Статистические функции обработки изображений
- •6.1. Определение rgb значений пиксела
- •6.2. Вычисление среднего значения элементов матрицы
- •6.3. Вычисление среднеквадратичного отклонения элементов матрицы
- •6.4. Выделение подобластей изображения
- •6.5. Построение гистограммы интенсивности цветовых компонентов
- •6.6. Применение команды hist для анализа текстуры дорожного покрытия
- •7. Управление параметрами изображений
- •7.1. Выравнивание гистограммы (эквализация)
- •7.2. Управление яркостью (Вета – коррекция)
- •7.3. Управление контрастностью (Гамма-коррекция)
- •8. Фильтрация изображений
- •Принципы фильтрации
- •8.2 Функции фильтрации
- •8.3. Фильтр Гаусса.
- •8.4.Фильтр Собеля
- •8.5. Фильтр Превитта.
- •8.6. Вч фильтр Лапласа.
- •8.7.Фильтр Лапласа-Гаусса.
- •8.8. Усредняющий нч фильтр.
- •8.9. Фильтр повышения резкости.
- •9. Выделение контуров объектов
- •10. Пример обработки изображения для анализа качества дорожного покрытия
- •Литература
2.2. Массивы.
Массивы
(array)
представляют собой структуры, используемые
в языках программирования для работы
с наборами (упорядоченными
последовательностями) чисел одного
типа. Естественно, что компьютер может
работать только с конечными наборами
чисел. Таким образом, массив – это
функция на упорядоченной последовательности
чисел
,
таких что
,
,
количество
чисел в
.
Число k
называется
размерностью массива или числом индексов
массива.
Например, Х={f(1),f(2),f(3),f(4),f(5)}={5,10,34,56,70} – одномерный массив целых чисел, где А1={1,2,3,4,5};
f(1,1), f(1,2), f(1,3), f(1,4) 3.5, - 6, 90,1.9
Y= f(2,1), f(2,2), f(2,3), f(2,4) = 5.1 1.1, 40, 48 -
f(3,1), f(3,2), f(3,3), f(3,4) -60, 3.4,-1.6, 9
двумерный массив действительных чисел, где А1={1,2,3}, А2={1,2,3,4}.
Двумерный массив, таким образом, является структурой программирования, соответсвующей математическому понятию матрица. Визуально матрица представляется в виде таблицы чисел
А
= ,где
m – число строк, n – число столбцов,
прозвольный элемент
имеет два индекса: i
- номер строки, j
– номер столбца. Размером
матрицы А называется
пара m
n.
Каждый язык программирования имеет ограничения на k-число наборов в массиве. В С++ величина k не превосходит 12. Для MATLAB наиболее часто используются случаи k=1 и 2.
Одномерные массивы (конечная последовательность чисел) инициализируются в MATLAB в квадратных скобках, разделители – пробелы или запятые. Индексация массивов начинается с единицы.
Пример 2.2.
а) >> v=[35672] % Ввод целочисленного вектора
v = % Значение переменной v
3 5 6 7 2
б) >> v(2) % Запрос значения координат
% вектора v с номером 2
ans =
5
в) >> v2=v(2);v2 % Запрос значения координат
% вектора v с номером 2
v2 =
5
г) >> v(1:3) % Запрос значений координат
% вектора v начиная с номера
% 1 до номера 3
ans =
3 5 6
Замечание. В примере 2.2.б в запросе не указано точное имя переменной вывода, поэтому в ответе используется имя “ans”.
В примере 2.2.в мы указали имя выводимой переменной “v2” и в ответе компьютера оно появилось.
Для доступа к блоку элементов массива используется символ «:».
Для ввода матриц (прямоугольной таблицы) в качестве разделителя строк используется символ «;».
Пример 2.3.
а) Ввод матрицы А размер 3 х 3.
>> A = [123;234;543] % Ввод элементов
% матрицы А 3х3
A = % Проверка
1 2 3
2 3 4
5 4 3
б) Ввод ранжированного вектора x= {1, 3, 5, 7, 9}
>> x = 1:2:9 % Указываются начальное значение,
% разделитель ‘:’, шаг, разделитель,
% конечное значение
2.3. Операторы
Операторы MATLAB разделены на три основные категории:
- арифметические операторы;
- операторы сравнения;
- логические операторы.
2.3.1. Операции с числами
В MATLAB существуют следующие арифметические операторы:
+ |
сложение |
- |
вычитание |
* |
умножение |
^ |
возведение в степень |