前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CV预备(二): im2col与col2im

CV预备(二): im2col与col2im

作者头像
sean_yang
发布2019-05-15 15:02:35
1K0
发布2019-05-15 15:02:35
举报
文章被收录于专栏:Sorrower的专栏Sorrower的专栏

目录

  • 前言
  • im2col
  • col2im
  • 最后

前言

Matlab矩阵处理的函数真的是太多了, 这里来看两个矩阵重排的函数im2colcol2im.


im2col

这里有3种形式, 如下:

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

B = im2col(A, [m n])B = im2col(A, [m n], 'sliding') 是等价的. 所以先从它开始说吧:

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

代码语言:javascript
复制
A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
B = im2col(A, [2 2])

输出如下:

代码语言:javascript
复制
A =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16


B =

     1     5     9     2     6    10     3     7    11
     5     9    13     6    10    14     7    11    15
     2     6    10     3     7    11     4     8    12
     6    10    14     7    11    15     8    12    16

简单来说, 就是以步长为1进行滑动生成子矩阵, 子矩阵大小为[m n]. 所以B中的每一个列都是子矩阵.


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

这个和sliding最大的差别就是子矩阵不重叠. 整体生成方式没有太大变化.


col2im

col2im就是im2col的逆过程. col2im有3中形式, 如下:

  • A = col2im(B, [m n], [M N])
  • A = col2im(B, [m n], [M N], 'sliding')
  • A = col2im(B, [m n], [M N], 'distinct')

还是和im2col相似, A = col2im(B, [m n], [M N])A = col2im(B, [m n], [M N], 'sliding') 是一个效果.

A = col2im(B, [m n], [M N], 'sliding')

代码如下:

代码语言:javascript
复制
B = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = col2im(B, [1 1], [2, 8], 'sliding')

输出如下:

代码语言:javascript
复制
B =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16


A =

     1     9     2    10     3    11     4    12
     5    13     6    14     7    15     8    16

可以看到, 依旧是竖着进行滑动, col2im的作用就是按照给的尺寸重排矩阵.


A = col2im(B, [m n], [M N], 'distinct')

代码语言:javascript
复制
B = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = col2im(A, [2 2], [2 8], 'distinct')

输出如下:

代码语言:javascript
复制
B =

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16


A =

     1     9     2    10     3    11     4    12
     5    13     6    14     7    15     8    16

可以看到sliding输出结果是相同的, 但是内在逻辑并不同.


最后

喜欢记得点赞或者关注哦, 有意见或者建议评论区见~


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.05.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 前言
  • im2col
    • B = im2col(A, [m n], 'sliding')
      • B = im2col(A, [m n], 'distinct')
      • col2im
        • A = col2im(B, [m n], [M N], 'sliding')
          • A = col2im(B, [m n], [M N], 'distinct')
          • 最后
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档