Переставьте блоки изображений в столбцы
переставляет дискретные блоки изображений размера B
= im2col(A
,[m n]
,'distinct')m
-by- n
в столбцы и возвращает конкатенированные столбцы в матрице B
. The im2col
function pads image A
, при необходимости. Дополнительные сведения о значении заполнения см. в разделе Советов.
Порядок столбцов в матричном B
определяется путем обхода изображения A
столбчатым способом. Для примера, если A
состоит из отдельных блоков Aij
расположены следующим образом A = [A11 A12; A21 A22]
, затем B = [A11(:) A21(:) A12(:) A22(:)]
.
Для отдельной обработки блоков, im2col
нулевые накладки A
, при необходимости, поэтому его размер является целым числом, кратным m
-by- n
. Значение заполнения 0
когда A
является типом данных uint8
, uint16
, или logical
. Для других типов данных значение заполнения зависит от того, A
интерпретируется как индексированное изображение.
Значение заполнения 1
когда A
интерпретируется как индексированное изображение.
Значение заполнения 0
когда A
не интерпретируется как индексированное изображение.
im2col
упорядочивает столбцы B
так, что они могут быть изменены, чтобы сформировать матрицу согласно reshape
.
Например, предположим, что вы используете функцию, такую как sum(B)
, который возвращает скаляр для каждого столбца B
. Можно непосредственно хранить результат в матрице размера (mm-m+1
) -by- (nn-n+1
), используя эти вызовы.
B = im2col(A,[m n],'sliding');
C = reshape(sum(B),mm-m+1,nn-n+1);