colfilt

Столбчатые операции по соседству

Описание

пример

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

B = colfilt(A,[m n],[mblock nblock],block_type,fun) subdivides A в области размера mblock-by- 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-by- n блок A в столбец во временной матрице при помощи im2col функция.

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

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

'sliding'

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

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

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

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

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