如何使用 MATLAB Mat2Cell 分割图像

时间:2021-04-25 19:36:44

标签: matlab

我有一张 4476x9058 像素的图片。我正在尝试使用 mat2cell 将其拆分为每个 100x300 像素的子图像。但是,我收到错误:

输入参数,D1 到 D2,必须和 输入矩阵大小的每个维度, [4476 9058]。

代码如下:

image =rand(4476,9058);
blockSizeRow = 100;            
blockSizeCol = 300;

[nrows, ncols] = size(image);
nBlocksRow = floor(nrows / blockSizeRow);
nBlocksCol = floor(ncols / blockSizeCol);
rowDist = [blockSizeRow * ones(1, nBlocksRow), mod(nrows, nBlocksRow)];
colDist = [blockSizeCol * ones(1, nBlocksCol), mod(ncols, nBlocksCol)];
blockImages = mat2cell(image, rowDist, colDist,1); 

1 个答案:

答案 0 :(得分:1)

mod(nrows, nBlocksRow)改为mod(nrows, blockSizeRow),将mod(ncols, nBlocksCol)改为mod(ncols, blockSizeCol)