exponenta event banner

colfilt

Операции в районе Columnwise

Описание

пример

B = colfilt(A,[m n],block_type,fun) обрабатывает изображение A путем перестановки каждого mоколо-n блок из A в столбец временной матрицы, а затем применение функции fun к этой матрице. colfilt нулевые колодки A, при необходимости.

B = colfilt(A,[m n],[mblock nblock],block_type,fun) подразделяет A в области размера mblockоколо-nblock блоки для сохранения памяти. Обратите внимание, что результат операции не изменяется при использовании [mblock nblock] аргумент.

Например, если [mblock nblock] является [3 4] и размер каждого блока составляет 16 на 16 пикселей, то colfilt подразделяет изображение на области размером 48 на 64 пикселя и обрабатывает каждую область отдельно.

B = colfilt(A,'indexed',___) процессы A в качестве индексированного изображения, заполнение 0s, если класс A является uint8, uint16, или logicalи заполнение 1s в противном случае.

Примеры

свернуть все

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

Чтение изображения в градациях серого в рабочую область.

I = imread('tire.tif');

Выполните фильтрацию по столбцам. Функция mean вызывается в каждой окрестности 5 на 5 пикселей.

I2 = uint8(colfilt(I,[5 5],'sliding',@mean));

Отображение исходного изображения и отфильтрованного изображения.

imshow(I)
title('Original Image')

Figure contains an axes. The axes with title Original Image contains an object of type image.

figure
imshow(I2)
title('Filtered Image')

Figure contains an axes. The axes with title Filtered Image contains an object of type image.

Входные аргументы

свернуть все

Образ, указанный как массив любого класса, поддерживаемого fun.

Размер блока, заданный как 2-элементный вектор положительных целых чисел. m - количество строк и n - количество столбцов в каждом блоке.

Размер группы блоков, заданный как 2-элементный вектор положительных целых чисел. mblock - количество блоков в группе в вертикальном направлении, и nblock - количество блоков в группе в горизонтальном направлении.

Тип блока, указанный как 'sliding' для скользящих кварталов или 'distinct' для отдельных блоков.

Типы данных: char | string

Дескриптор функции, указанный как дескриптор. Входные и выходные аргументы этой функции зависят от значения block_type. Дополнительные сведения см. в разделе Алгоритмы.

Дополнительные сведения об дескрипторах функций см. в разделе Создание дескриптора функции.

Выходные аргументы

свернуть все

Отфильтрованное изображение, возвращаемое в виде числовой матрицы.

Алгоритмы

Алгоритм, который colfilt использование для обработки изображений зависит от значения block_type.

Стоимость

Описание

'distinct'

  • Во-первых, colfilt переставляет каждый mоколо-n блок из A в столбец во временной матрице с помощью im2col функция.

  • Далее, colfilt применяет функцию fun к этой временной матрице. fun должен возвращать матрицу того же размера, что и временная матрица.

  • Наконец, colfilt переупорядочивает столбцы матрицы, возвращенные fun в mоколо-n различных блоков, с использованием col2im функция.

'sliding'

  • Во-первых, colfilt переставляет каждый mоколо-n окрестности A в столбец во временной матрице с помощью im2col функция.

  • Далее, colfilt применяет функцию fun к этой временной матрице. fun должен возвращать вектор строки, содержащий одно значение для каждого столбца временной матрицы. (Функции сжатия столбцов, такие как sum возвращает соответствующий тип вывода.)

  • Наконец, colfilt изменяет форму вектора, возвращенного fun в матрицу того же размера, что и A, с помощью reshape функция.

Чтобы сохранить память, colfilt функция может разделить A в субизображения и обрабатывать по одному субизображению за раз. Это подразумевает, что fun может быть вызван несколько раз, и что первый аргумент для fun может иметь разное количество столбцов каждый раз.

Представлен до R2006a