主要内容

im2col

将图像块重新排列成列

描述

B= im2col (一个(mn)“不同的”)重新排列大小的离散图像块——- - - - - -n转换为列,并在矩阵中返回连接的列B.的im2col功能垫图像一个,如有需要。有关填充值的详细信息,请参见提示

矩阵中列的顺序B是通过遍历图像确定的吗一个以列的方式。例如,如果一个由不同的块组成Aij安排,A = [a11 a12;A21 A22],然后B = [a11 (:) a21 (:) a12 (:) a22 (:)]

例子

B= im2col (一个(mn)“滑动”)

B= im2col (一个(mn)重新排列大小的滑动图像邻域——- - - - - -n转换为无零填充的列,并返回矩阵中连接的列B

B= im2col (一个“索引”,___解释一个作为一个索引图像。

例子

全部折叠

创建一个矩阵。

A =重塑(linspace(0,1,16),[4 4])'
一个=4×40 0.0667 0.1333 0.2000 0.2667 0.3333 0.4000 0.4667 0.5333 0.6000 0.6667 0.7333 0.8000 0.8667 0.9333 1.0000

将值按列重新排列。

B = im2col(A,[2])
B =4×90 0.2667 0.5333 0.0667 0.3333 0.6000 0.1333 0.4000 0.6667 0.2667 0.5333 0.8000 0.3333 0.6000 0.8667 0.333 0.6667 0.3333 0.6000 0.1333 0.4000 0.6667 0.2000 0.4667 0.7333 0.6000 0.8667 0.4000 0.6667 0.333 0.4667 0.7333 1.0000

计算平均值。

M = mean(B)
M =1×90.1667 0.4333 0.7000 0.2333 0.5000 0.7667 0.3000 0.5667 0.8333

将值重新排列回原来的按行方向。

newA = col2im(M,[1 1],[3 3])
newA =3×30.1667 0.2333 0.3000 0.4333 0.5000 0.5667 0.7000 0.7667 0.8333

输入参数

全部折叠

图像,指定为二维灰度图像、二维二值图像或二维索引图像。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

块大小,指定为2元素向量。行数是和吗n是块中的列数。

输出参数

全部折叠

图像块,以数字矩阵或逻辑矩阵的形式返回n行。列的数量取决于图像块是离散块还是滑动邻域。的每一列B包含的块或邻域一个被重塑为列向量。

  • 对于不同的块处理,B有那么多专栏吗——- - - - - -n一个.例如,如果的大小一个(毫米nn),然后B(毫米/米)* (nn / n)列。

  • 对于滑动邻域处理,B有那么多专栏吗——- - - - - -n社区的一个.例如,如果的大小一个(毫米nn),然后B((mm-m + 1) * (nn-n + 1))列。

提示

  • 对于不同的块处理,im2col一个,因此它的大小是的整数倍——- - - - - -n.填充值为0一个是数据类型uint8uint16,或逻辑.对于其他数据类型,填充的值取决于是否一个解释为索引图像。

    • 填充值为1一个解释为索引图像。

    • 填充值为0一个不解释为索引图像。

  • im2col对列进行排序B这样它们就可以被重塑成一个矩阵重塑

    例如,假设您使用一个函数,例如和(B)的每一列返回一个标量B.您可以直接将结果存储在一个大小为(mm-m + 1)——- (nn-n + 1),使用这些调用。

    B = im2col(A,[m n],“滑动”);C =重塑(sum(B),mm-m+1,nn-n+1);

版本历史

R2006a之前介绍