我有一张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)