colfilt

Постолбцовые операции окружения

Описание

пример

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 uint8uint16, или 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