Matlab中的im2col函数

来源:互联网 发布:jquery怎么渲染数据 编辑:程序博客网 时间:2024/06/06 07:23

官方文档对其功能的描述为为:Rearrange image blocks into columns. 即重排图像块为矩阵列。
函数原型为:

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

block_type的取值可以为’distinct’或者’sliding’。


当block_type为distinct时,将A沿列的方向分解为互不重叠的子矩阵,并将分解以后的子矩阵沿列的方向转换成B的列,若不足m×n,以0补足。听着有些拗口,看个实例。

>> A = [1 2 3; 4 5 6; 7 8 9]A =     1     2     3     4     5     6     7     8     9>> B = im2col(A, [2 2], 'distinct')B =     1     7     3     9     4     0     6     0     2     8     0     0     5     0     0     0

A=147258369

B=1425708036009000

将矩阵A分割成的四个子矩阵是:
[1425][7080][3600][9000]

按照子矩阵的列进行排列得到矩阵B


当block_type为sliding时,以子块滑动的方式将A分解成m×n的子矩阵,并将分解以后的子矩阵沿列的方向转换成B的列。子块滑动的方式每次移动一行或者一列。

>> B = im2col(X, [2 2], 'sliding')B =     1     4     2     5     4     7     5     8     2     5     3     6     5     8     6     9

B=1425475825365869

将矩阵A分割成的四个子矩阵是:
[1425][4758][2536][5869]

按照子矩阵的列进行排列得到矩阵B。

对于sliding类型,如果设Am×n的,[p q]的block 块,则最后矩阵的行数为mxn,列数为(mp+1)×(nq+1)

2 0
原创粉丝点击