Main Content

col2im

行列の列をブロックに再配置

説明

A = col2im(B,[m n],[M N]) または

A = col2im(B,[m n],[M N],'sliding') は行ベクトル Bmn 列の近傍に再配置することで、サイズが (M-m+1)(N-n+1) 列の行列 A を作成します。

行ベクトル B は通常 im2col(...,'sliding') の出力を、sum などの列圧縮関数を使用して、処理した結果です。

A = col2im(B,[m n],[M N],'distinct') は行列 B の各列を mn 列の明確に区別されたブロックに再配置することで、サイズが MN 列の行列 A を作成します。

たとえば、B の構成が、列ベクトル Bi(:) で長さ m*n であり、B = [B1(:) B2(:) B3(:) B4(:)] という配置の場合、A = [B1 B3; B2 B4] で各ブロック Bimn 列になります。

すべて折りたたむ

行列を作成します。

B = reshape(uint8(1:25),[5 5])'
B = 5x5 uint8 matrix

    1    2    3    4    5
    6    7    8    9   10
   11   12   13   14   15
   16   17   18   19   20
   21   22   23   24   25

行列内の値を列方向の配置に再配置します。

C = im2col(B,[1 5])
C = 5x5 uint8 matrix

    1    6   11   16   21
    2    7   12   17   22
    3    8   13   18   23
    4    9   14   19   24
    5   10   15   20   25

行列内の値を元の行方向の配置に戻します。

A = col2im(C,[1 5],[5 5],'distinct')
A = 5x5 uint8 matrix

    1    2    3    4    5
    6    7    8    9   10
   11   12   13   14   15
   16   17   18   19   20
   21   22   23   24   25

入力引数

すべて折りたたむ

イメージ ブロック。次のいずれかに指定します。

  • 個別ブロック処理では、Bm*n 行の数値または logical 行列です。各列は 1 つのブロックに対応します。

  • スライディング近傍処理では、B は 1 行 (M-m+1)*(N-n+1) 列の数値または logical 行ベクトルです。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

ブロック サイズ。正の整数の 2 要素ベクトルとして指定します。m は各ブロックの行数で、n は列数です。m*nB の行数に等しくなければなりません。

データ型: double

イメージのサイズ。正の整数の 2 要素ベクトルとして指定します。ここで、M はイメージの行数で、N は列数です。

データ型: double

出力引数

すべて折りたたむ

再構成イメージ。個別ブロック処理では MN 列の数値行列として、スライディング ブロック処理では (M-m+1)(N-n+1) 列として返されます。AB と同じデータ型です。

バージョン履歴

R2006a より前に導入