| 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 Aij 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 | ![]() |