- •Часть 1: Пакет matlab
- •1. Начальные сведения о математическом пакете matlab
- •1.2. Редактор командной строки
- •2. Основные конструкции matlab
- •2.1. Форматы представления чисел и типы данных, используемых при обработке изображений
- •2.2. Массивы.
- •2.3. Операторы
- •2.3.1. Операции с числами
- •2.3.3. Операторы сравнения для массивов
- •2.3.4. Логические операторы
- •2.4. Символьные вычисления
- •2.3.2 Операции с матрицами
- •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. Пример обработки изображения для анализа качества дорожного покрытия
- •Литература
1.2. Редактор командной строки
Различные
стрелки и управляющие клавиши на
клавиатуре позволяют вызывать,
редактировать и многократно использовать
команды, набранные ранее. Например,
предположим, что допущена ошибка при
вводе выражения
>>
% т.е. в сочетании sqrt
пропущена буква r
MATLAB ответит вам предупреждением
Undefined function or variable `sqt`.
Вместо того чтобы заново набирать всю строку, можно нажать клавишу . На экране изобразится ошибочно введенная команда. Далее используется клавиша для перемещения курсора и вставки пропущенной буквы “r”. Повторное использование клавиши вызовет предыдущую строку. Ниже приведен список клавиш, позволяющих редактировать команды в командном окне I, рис. 1.
Список доступных клавиш редактирования в командной строке зависит также от настроек компьютера.
|
Ctrl-p |
Вызов предыдущей строки |
|
Ctrl-n |
Вызов последующей строки |
|
Ctrl-b |
Движение назад на один символ |
|
Ctrl-f |
Движение вперед на один символ |
Ctrl- |
Ctrl-r |
Движение вправо на одно слово |
Ctrl- |
Ctrl-l |
Движение влево на одно слово |
Home |
Ctrl-a |
Переход на начало строки |
End |
Ctrl-e |
Переход на конец строки |
Esc |
Ctrl-u |
Очистка строки |
Del |
Ctrl-d |
Удаление символа за курсором |
Backspace |
Ctrl-h |
Удаление символа перед курсором |
|
Ctrl-k |
Удаление до конца строки |
Упражнение 1.1. Присвоить переменной X арифметическое выражение 2/5 + 1,1 * 2 и проверить результат.
Упражнение 1.2. Записать значение 1/0 переменной Y.
Упражнение 1.3. Присвоить Z алгебраическое выражение A * (A +2) и проверить результат.
Упражнение 1.4. Вычислить arcsin(2).
Упражнение1.5.
Вычислить
.
Сообщения MATLAB о некорректных действиях пользователя:
Warning: Divide by zero.
??? Undefined function or variable 'A'.
Error: The expression to the left of the equals sign is not a valid target for an assignment.
2. Основные конструкции matlab
2.1. Форматы представления чисел и типы данных, используемых при обработке изображений
Математические выражения содержат числа и символы. В силу того, что в ЭВМ элементом информации является бит, принимающий значение 0 или 1, то представление символьных и числовых величин имеет ограничение в некотором диапазоне, измеряемом в битах или байтах. Байт равен 4 битам. Таким образом, максимальное количество вариантов чисел, которые могут быть представлены 1 байтом равно 24=16. Тогда с учетом нулевого значения с помощью одного байта можно получить положительное целое число из отрезка [0,15]. Если один бит выделить под информацию о знаке числа, то один байт соответствует отрезку [-8,7]. Базовым форматом представления целых чисел является int8, использующий 2 байта, т.е. 8 бит. Первый бит выделяется на знак числа, остальные 7 бит позволяют генерировать числа не более 27=128. Таким образом, формат int8 соответствует целым числам из интервала [-128,127].
В таблице перечислены основные типы данных MATLAB.
|
Имя |
Описание |
1. |
logical |
Значения 0 или 1 (1 бит на элемент). |
2. |
int8 |
Целые со знаком в интервале [-128,127](2байта) |
3. |
uint8 |
Целые без знака в интервале [0,255] (2 байта) |
4. |
int16 |
Целые со знаком в интервале [-32768,32767] (4 байта) |
5. |
uint16 |
Целые без знака в интервале [0,65535] (4 байта) |
6. |
int32 |
Целые со знаком в интервале [-2147483648, 2147483647] (8 байтов) |
7. |
uint32 |
Целые без знака в интервале [0,4294967295] (8 байтов) |
8. |
single |
Вещественные числа с плавающей запятой обычной точности в диапазоне от -1038 до 1038 (4 байта) |
9. |
double |
Вещественные числа с плавающей запятой двойной точности в диапазоне от -10308 до 10308 |
10. |
char |
Символы (буквы и знаки) (2 байта на символ) |
Пример 2.1.
1. 201 – целое число, тип unit8 или int8
2. -122 – целое число, тип int8
3. -8.256 – действительное число, тип single
4. 47584930274847.9994 - действительное число, тип double:
>> x=47584930274847.9994
x = % представления числа типа
4.7585e+013 % double в MATLAB
5. АВС1 – char, символьный тип
Упражнение 2.1.
а). Почему число -122 не относится к типу unit8?
б). Если a=2 и b=16, к какому типу следует отнести результат операции деления c=a/b, чтобы он был по возможности более точным?
в). Если a, b и c принадлежат unit8, a=45, b=17, c=a/b, чему равно c?
