Функции Image Toolbox / imlincomb.php
.htmСписок функцийImage Processing Toolbox. Описание функции IMLINCOMB Семинары Обучение Лицензирование Разработка Подписка Форум Регистрация Matlab Toolboxes Simulink Blocksets Femlab Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Анализ изображений
В оглавление \ К следующему разделу \ К предыдущему разделу
IMLINCOMB Вычисление линейной комбинации изображений Синтаксис:
Z=imlincomb(K1, A1, K2, A2, ..., Kn, An)
Z=imlincomb(K1, A1, K2, A2, ..., Kn, An, K)
Z=imlincomb(..., output_class)
Описание:
Функция Z=imlincomb(K1, A1, K2, A2, ... , Kn, An) проводит следующие вычисления:
K1*A1+K2*A2+...+Kn*An ,
где K1, K2, …, Kn – вещественные скаляры в формате представления данных double и A1, A2, …, An – неразреженные числовые вещественные массивы той же размерности и формата. Размерность и формат представления данных результата вычислений Z совпадает с A1.
Функция Z=imlincomb(K1, A1, K2, A2, ... , Kn, An, K) проводит вычисления согласно выражению:
K1*A1+K2*A2+...+Kn*An+K ,
где функция imlincomb добавляет K (вещественный скаляр в формате представления данных double) к сумме K1, …, Kn и A1, …, An.
Функция Z=imlincomb(..., output_class) определяет формат представления данных Z. Параметр output_class имеет числовой формат.
Примечание. Когда выполняется серия арифметических операций на паре изображений, можно добиться лучшего результата если использовать функцию imlincomb. Для комбинации операций вычисления проводятся быстрее, чем при использовании функции imadd, что объясняется структурой используемого алгоритма.
Пример:
Преобразование исходного изображения с коэффициентом два.
I=imread('cameraman.tif');
J=imlincomb(2, I);
imshow(J)
Сдвиг разницы изображений на 128.
I=imread('cameraman.tif');
J=uint8(filter2(fspecial('gaussian'), I));
K=imlincomb(1, I, –1, J, 128); % K(r, c)=I(r, c)–J(r, c)+128
imshow(K)
Для иллюстрации выполнения функцией imlincomb всех арифметических операций с быстрым получением результата, сравним результат вычисления среднего двух массивов X и Y с использованием вложенных арифметических операций и с использованием функции imlincomb.
Рассмотрим значения строк и столбцов: 255 в X и 50 в Y. Функция imadd суммирует 255 и 50, и усекает результат до 255. Возвращаемое средние значение в Z(1,1) равно 128.
X=uint8([ 255 10 75; 44 225 100]);
Y=uint8([ 50 20 50; 50 50 50 ]);
Z=imdivide(imadd(X, Y), 2)
Z=
128 15 63
47 128 75
Функция imlincomb выполняет суммирование и деление в формате double с усечением к нужному диапазону результирующих данных. Средние значение в этом случае равно Z2(1, 1) is 153.
Z2=imlincomb(.5, X, .5, Y)
Z2=
153 15 63
47 138 75
Сдвиг разницы изображений на 128.
I=imread('cameraman.tif');
J=uint8(filter2(fspecial('gaussian'), I));
K=imlincomb(1, I, –1, J, 128);
% K(r, c)=I(r, c)–J(r, c)+128
imshow(K)
Сопутствующие функции: IMADD, IMCOMPLEMENT, IMDIVIDE, IMMULTIPLY, IMSUBTRACT.
В оглавление \ К следующему разделу \ К предыдущему разделу
I Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
II Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2004 г.) На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro E-mail: matlab@exponenta.ru Информация на сайте была обновлена 14.05.05 Copyright 2001-2005 SoftLine Co
Наши баннеры hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=58396&im=33&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("") >