Скачиваний:
4
Добавлен:
02.05.2014
Размер:
36.06 Кб
Скачать

Список функцийImage Processing Toolbox. Описание функции BLKPROC  Семинары   Обучение   Лицензирование   Разработка   Подписка   Форум  Регистрация    Matlab    Toolboxes    Simulink    Blocksets    Femlab    Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Фильтрация изображений

  В оглавление \ К следующему разделу \ К предыдущему разделу

BLKPROC Обработка блоков изображения Синтаксис:

D=blkproc(S, [m n], fun)

D=blkproc(S, [m n], fun, P1, P2, …)

D=blkproc(S, [m n], [mborder nborder], fun, …)

D=blkproc(S, ‘indexed’, …)

Описание:

Функция D=blkproc(S, [m n], fun) формирует новое изображение D, пиксели которого являются результатом обработки функцией fun каждого из неперекрывающихся блоков размера исходного изображения S. Данная функция предназначена для обработки бинарных или полутоновых изображений. Исходное изображение S разбивается на неперекрывающиеся блоки пикселей. Блоки располагаются вплотную друг к другу, начиная с левого верхнего угла изображения. При проведении вычислений исходное изображение временно дополняется столбцами нулей справа и строками нулей снизу так, чтобы размеры изображений были кратны соответствующим размерам блока. Например, на рис. 1 исходное изображение имеет 10 строк и 9 столбцов. Если для обработки использовать блок [3 4], то изображение дополняется двумя строками и тремя столбцами нулевых пикселей.

Рис. 1.

Существует 3 варианта задания параметра fun. Имя х является условным обозначением обрабатываемого блока изображения.

Параметр fun Пример Комментарий Строка - имя функции D=blkproc(S, [m n], ‘myfunc’); Предварительно должна быть реализована функция myfunc, которая получает в качестве параметра блок х и возвращает матрицу или скаляр y: y=myfunc(x). Строка - выражение языка D=blkproc(S, [m n], ‘mean2(x)*ones(size(x))’); В строку помещается выражение, допустимое синтаксисом MATLAB. Это выражение интерпретируется при выполнении каждого блока. inline - функция f=inline(‘std2(x)*ones(size(x))’);D=blkproc(S, [m n], f); В качестве параметра функции inline указывается строка - выражение языка MATLAB. Оно компилируется и создается так называемая функция inline - функция, которая вызывается при обработке каждого блока. Использование inline - функций предпочтительнее по временным затратам. В результате обработки каждого блока создается матрица, вектор или скаляр, из которых формируется результирующее изображение D. Таким образом, размеры исходного и результирующего изображения, как правило, различаются.

Функция D=blkproc(S, [m n], fun, P1, P2, …) формирует изображение D, передавая в функцию fun дополнительные параметры Р1, Р2 и т.д.

Функция D=blkproc(S, [m n], [mborder nborder], fun, …) формирует изображение D, пиксели которого являются результатом обработки функцией fun частично перекрывающихся блоков размера исходного изображения S. Каждый блок размера расширяется вверх и вниз на mborder строк, а также вправо и влево на nborder столбцов. При этом центральные части размера (ядра) расширенных блоков не перекрываются друг с другом и располагаются, как и в предыдущем рассмотренном случае, последовательно начиная от левого верхнего угла изображения. В этом случае при проведении вычислений исходное изображение временно дополняется столбцами нулей справа и строками нулей снизу, чтобы размеры изображений были кратны соответствующим размерам блока , и дополнительно на mborder строк вверх и вниз и на nborder столбцов вправо и влево. Рис. 2 демонстрирует расположение двух соседних по диагонали блоков с размерами ядра 3х4 и mborder=1 nborder=2 на изображении, имеющем 10 строк и 9 столбцов. При вычислении изображение будет расширено на 3 строки вниз, 1 строку вверх, 5 столбцов вправо и 2 столбца влево.

Рис. 2.

Формат представления данных изображений S и D определяется реализацией функции fun.

Функция D=blkproc(S, ‘indexed’, …) аналогична рассмотренным выше, но предназначена для обработки палитровых изображений. При проведении вычислений исходное изображение временно дополняется либо единицами при формате представления данных Xs-double, либо нулями при формате представления данных Xs-uint8.

Повысить эффективность обработки блоков можно с помощью функции colfilt, которая предварительно преобразует блоки в столбцы.

Пример:

Рассмотрим выравнивание фона изображения с использованием функции blkproc. Неравномерный фон является серьезным дефектом изображений, который ухудшает визуальное восприятие и мешает выделению объектов с помощью порогового ограничения.

Исходное биомедицинское изображение показано на рис. 3,а. Это изображение характеризуется значительной неравномерностью фона. С помощью функции blkproc оценим яркость фона как среднее значение яркостей пикселей в блоках 25х25 пикселей. В результате работы blkproc получается изображение с размером в 25 раз меньшим, чем исходное. Для того чтобы изображение фона и исходное изображение были одинакового размера, изображение фона увеличивается с помощью функции imresize. Полученная оценка фона показана на рис. 3,б.

Если вычесть изображение фона из исходного изображения, то получится изображение с равномерным фоном. Добавление константы 0.5 необходимо для того, чтобы значения пикселей получившегося изображения были в диапазоне [0, 1]. Функцией imadjast результирующее изображение дополнительно контрастируется. Получившийся результат показан на рис. 3,в.

%Пример демонстрирует выравнивание фона.

%Чтение изображения.

I=imresd(‘image03.tif’);

I=im2double(I);

%Вывод на экран.

imshow(I);

%Получение оценки фона изображения как среднего

%в блоках 25х25 пикселей.

F=inline(‘mean2(x)’);

fon=blkproc(I, [25 25],f);

fon=imresize(fon, size(I), ‘bicubic’);

figure, imshow(fon);

%Вычитаем фон и контрастируем получившееся изображение.

I=I-fon+0.5;

I=imadjust(I, [0.2 0.7], 1);

% Вывод на экран результата.

figure, imshow(I);

а) б) в) Рис. 3.

Сопутствующие функции: BESTBLK, COLFILT.

  В оглавление \ К следующему разделу \ К предыдущему разделу

  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("") >

Соседние файлы в папке Функции Image Toolbox