如何使用MATLAB Mat2Cell分割图像



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

输入参数D1到D2的总和必须为输入矩阵大小的每个维度,[44769058]

代码如下所示:

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); 

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

最新更新