Форматы представления чисел и типы данных, используемых при обработке изображений

Математические выражения содержат числа и символы. В силу того, что в ЭВМ элементом информации является бит, принимающий значение 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?

Массивы.

Массивы (array) представляют собой структуры, используемые в языках программирования для работы с наборами (упорядоченными последовательностями) чисел одного типа. Естественно, что компьютер может работать только с конечными наборами чисел. Таким образом, массив – это функция на упорядоченной последовательности чисел Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru , таких что Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru , Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru , количество чисел в Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru . Число kназывается размерностью массива или числом индексов массива.

Например, Х={f(1),f(2),f(3),f(4),f(5)}={5,10,34,56,70} – одномерный массив целых чисел, где А1={1,2,3,4,5};

               
  Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru   Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru   Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru   Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

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}.

Двумерный массив, таким образом, является структурой программирования, соответсвующей математическому понятию матрица. Визуально матрица представляется в виде таблицы чисел

Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

А = ,где m – число строк, n – число столбцов, прозвольный элемент Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru имеет два индекса: i - номер строки, j – номер столбца. Размером матрицы А называется пара m ´ n.

Каждый язык программирования имеет ограничения на k-число наборов в массиве. В С++ величина k не превосходит 12. Для MATLAB наиболее часто используются случаи k=1 и 2.

Одномерные массивы (конечная последовательность чисел) инициализируются в MATLAB в квадратных скобках, разделители – пробелы или запятые. Индексация массивов начинается с единицы.

Пример 2.2.

а) >> v=[3V5V6V7V2] % Ввод целочисленного вектора

v = % Значение переменной v

3 5 6 7 2

б)>> v(2) % Запрос значения координат

% вектора v с номером 2

ans =

в)>> v2=v(2);v2 % Запрос значения координат

% вектора v с номером 2

v2 =

г)>> v(1:3) % Запрос значений координат

% вектора v начиная с номера

% 1 до номера 3

ans =

3 5 6

Замечание. В примере 2.2.б в запросе не указано точное имя переменной вывода, поэтому в ответе используется имя “ans”.

В примере 2.2.в мы указали имя выводимой переменной “v2” и в ответе компьютера оно появилось.

Для доступа к блоку элементов массива используется символ «:».

Для ввода матриц (прямоугольной таблицы) в качестве разделителя строк используется символ «;».

Пример 2.3.

а) Ввод матрицы А размер 3 х 3.

>> A = [1V2V3;V2V3V4;V5V4V3] % Ввод элементов

% матрицы А 3х3

A = % Проверка

1 2 3

2 3 4

5 4 3

б) Ввод ранжированного вектора x= {1, 3, 5, 7, 9}

>> x = 1:2:9 % Указываются начальное значение,

% разделитель ‘:’, шаг, разделитель,

% конечное значение

Операторы

Операторы MATLAB разделены на три основные категории:

- арифметические операторы;

- операторы сравнения;

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

Операции с числами

В MATLAB существуют следующие арифметические операторы:

+ сложение
- вычитание
* умножение
^ возведение в степень

Операции с матрицами

+ сложение
- вычитание
* умножение
/ правостороннее деление
\ левостороннее деление
^ возведение в степень
' транспонирование

Следующие операторы могут быть применены к матрицам (двумерным массивам):

а) A+B - сложение матриц одинакового размера,

б) A-B - вычитание матриц одинакового размера,

в) A*B - обозначает произведение матриц A и B по правилам линейной алгебры (число столбцов А равно числу строк В):

если Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru , то Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

г) A .* B - обозначает операцию над матрицами одинакового размера, результатом которой является матрица такого же размера, что A и B, каждый элемент которой получается как произведение соответствующих элементов исходных матриц; если Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru , то Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

д) В/А - возвращает матрицу, равную Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru . Результат Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru является решением матричного уравнения Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru . Использование оператора в виде В. /А создает матрицу С с элементами Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

е) A\B - возвращает матрицу, равную Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru . Результат Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru является решением матричного уравнения Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru . Использование оператора в виде В.\А создает матрицу С с элементами Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

ж) A’ - транспонирование матрицы (aij ® (j,i)).

Замечание.Левостороннее и правостороннее операции деления матриц связаны соотношением Форматы представления чисел и типы данных, используемых при обработке изображений - student2.ru

Пример 2.4. Применим операции деления к числам 4 и 2 как

матрицам размера 1*1. Результатом действия оператора 4/2 будет число 2, а 4\2 дает соответственно 0.5.

Наши рекомендации