Imsplit

バージョン 1.2.0.0 (2.88 KB) 作成者: Jurgen
Split image or matrix into subparts using simple syntax.
ダウンロード: 1.2K
更新 2013/5/2

ライセンスの表示

Divide image/matrix into cell array of blocks. Can specify per dimension in how many pieces it needs to divide. See examples in help section for a quick idea of how it works.

I = imsplit(im,2) splits image into 2x2 blocks etc.

I = imsplit(rgb,3,3) splits an rgb image 'rgb' into 1x1x3 cell array containing colorplanes.

Instead of a mat2cell wrapper this uses my own implementation of indexing (using permute) to split matrices into smaller and smaller pieces.
Since MATLAB's Answers get a lot of those submatrix questions I thought I'd share what I made.

No handling of uneven divisions, ie can not divide 400 pixel width into 3 blocks--common usage with images is crop or resize, then split. Recommend mat2cell or Matt J's mat2tiles(File ID: #35085) for uneven blocks.

May be faster if use a wrapper for mat2cell, but still pretty fast in its own right.

If you have imdisp() you can display the resulting cell array as you would an image. The illustration was created using imdisp with the 'bordersize' option to add 1% margins between the blocks.

引用

Jurgen (2024). Imsplit (https://www.mathworks.com/matlabcentral/fileexchange/40173-imsplit), MATLAB Central File Exchange. に取得済み.

MATLAB リリースの互換性
作成: R2008a
すべてのリリースと互換性あり
プラットフォームの互換性
Windows macOS Linux
カテゴリ
Help Center および MATLAB AnswersNeighborhood and Block Processing についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
バージョン 公開済み リリース ノート
1.2.0.0

Patched cell indexing. Cell2mat() should return original for all outputs now.

1.1.0.0

Expanded description

1.0.0.0