Статистические функции обработки изображений
Определение RGB значений пиксела
Функция impixel() возвращает значения красной (R), зеленой (G) и синей (B) составляющих цвета для определенных пикселов изображения. Координаты пикселов можно задавать интерактивно или непосредственно с помощью следующих команд:
P=impixel(I) - получение матрицы полутонового или черно-белого изображения,
P=impixel(X, map) - получение матрицы индексированного изображения,
P=impixel(RGB) - получение матрицы цветного RGB изображения,
P=impixel(I, c, r) - получение цвета пиксела с координатами r и c полутонового или черно-белого изображения,
P=impixel(X, map, c, r)- получение цвета пиксела с координатами r и c индексированного изображения,
P=impixel(RGB, c, r)- получение цвета пиксела с координатами r и c .
Где I, X, RGB - соответственно массивы полутонового, индексированного и полноцветного изображений; map – палитра изображения X; r, c – координаты пиксела;
Пример 6.1.Найти RGB компонент цвета пиксела с координатами (20, 20)
Рис.1 Изображение D_small
>> impixel (D_small, 20, 20)
ans =
37 48 42
>> impixel (D_small, 100, 100)
ans =
132 138 135
Вычисление среднего значения элементов матрицы
Функция mean2(S) вычисляет среднее значение элементов матрицы S.
Пример 6.2.Для матрицы S= найти среднее значение.
>>S=[4,6,3,9,4;7,4,8,4,7;8,4,6,3,7]
S =
4 6 3 9 4
7 4 8 4 7
8 4 6 3 7
>>m=mean2(S)
m =
5.6000
Пример 6.3.Для матрицы изображения на рис. 1 найти средний цвет.
m=mean2(D_small)
m =
117.1766
Вычисление среднеквадратичного отклонения элементов матрицы
Функция std2(S) вычисляет среднеквадратичное отклонение элементов матрицы S.
Пример 6.4.Найти среднеквадратичное отклонение элементов матрицы S= .
>>S=[4,6,3,9,4;7,4,8,4,7;8,4,6,3,7]
S =
4 6 3 9 4
7 4 8 4 7
8 4 6 3 7
>>d=std2(S)
d =
1.9928
Пример 6.5.Для матрицы изображения на рис. 1 найти среднеквадратичное отклонение элементов.
d=std2(D_small)
d =
30.5119
Выделение подобластей изображения
В MATLAB’e вырезание подобласти изображения реализуется функцией imcrop. Один из вариантов ее использования – вызов с одним параметром – imcrop(image), где image– имя массива, в котором содержится информация об изображении. В этом случае изображение будет выведено на экран и мышью можно будет выделить требуемую область. Эта команда полезна для предварительного визуального анализа объекта и отсечения лишних деталей.
Пример 6.6.Получить матрицу фрагмента изображения A_fragment, выбранного с помощью манипулятора мышь.
A_fragment = imcrop(D_small);
imshow(A_fragment)
Результат:
Рис.2. Исходное изображение Рис.3. Выделенная
подобласть Рис.2
При выделении никаких вычислений подобласти изображения не происходит. Из исходного массива выбирается подматрица, значения интенсивности цветовых компонентов которой соответствует выделенному визуальному фрагменту (Рис.4).
Рис.4. Массив значений интенсивностей фрагмента.