Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Rearrange image blocks into columns

`B = im2col(A,[m n],'distinct')`

`B = im2col(A,[m n],'sliding')`

`B = im2col(A,[m n])`

`B = im2col(A,'indexed',___)`

rearranges discrete image blocks of size
`B`

= im2col(`A`

,`[m n]`

,'distinct')`m`

-by-`n`

into columns, and returns the
concatenated columns in matrix `B`

. The `im2col`

function pads image `A`

, if necessary. For more information about
the padding value, see Tips.

The order of the columns in matrix `B`

is determined by
traversing the image `A`

in a column-wise manner. For example, if
`A`

consists of distinct blocks `Aij`

arranged as `A = [A11 A12; A21 A22]`

, then ```
B = [A11(:)
A21(:) A12(:) A22(:)]
```

.

For distinct block processing,

`im2col`

zero-pads`A`

, if necessary, so its size is an integer multiple of`m`

-by-`n`

. The padding value is`0`

when`A`

is data type`uint8`

,`uint16`

, or`logical`

. For other data types, the value of padding depends on whether`A`

is interpreted as an indexed image.The padding value is

`1`

when`A`

is interpreted as an indexed image.The padding value is

`0`

when`A`

is not interpreted as an indexed image.

`im2col`

orders the columns of`B`

so that they can be reshaped to form a matrix according to`reshape`

.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,[m n],'sliding'); C = reshape(sum(B),mm-m+1,nn-n+1);`