Image Processing Toolbox | ![]() ![]() |
Rearrange image blocks into columns
Syntax
Description
B = im2col(A,[m n],
block_type
)
rearranges image blocks into columns. block_type
is a string that can have one of these values:
B = im2col(A,[m n],'distinct')
rearranges each distinct m
-by-n
block in the
image A
into a column of B
. im2col
pads A
with zeros, if necessary, so its size is an integer multiple of m
-by-n
. If A = [A11 A12;A21 A22]
, where each A
ij is m
-by-n
, then B = [A11(:) A12(:) A21(:) A22(:)].
B = im2col(A,[m n],'sliding')
converts each sliding m
-by-n
block of A
into a column of B
, with no zero padding. B
has m*n
rows and will contain as many columns as there are m
-by-n
neighborhoods of A
. If the size of A
is [mm nn]
, then the size of B
is (m*n
)-by-((mm-m+1)*(nn-n+1))
.
B = im2col(A,[m n])
uses the default block_type
of 'sliding'
.
For the sliding block case, each column of B
contains the neighborhoods of A
reshaped as nhood(:)
where nhood
is a matrix containing an m
-by-n
neighborhood of A
. im2col
orders the columns of B
so that they can be reshaped to form a matrix in the normal way. For example, suppose you use a function, such as sum(B)
, that returns a scalar for each column of B
. You can directly store the result in a matrix of size (mm-m+1
)-by-(nn-n+1
), using these calls.
B = im2col(A,'indexed',...)
processes A
as an indexed image, padding with zeros if the class of A
is uint8
, or ones if the class of A
is double
.
Class Support
The input image, A
, can be numeric or logical. The output matrix, B
, is of the same class as the input image.
See Also
blkproc
, col2im
, colfilt
, nlfilter
![]() | im2bw | im2double | ![]() |