在MATLAB中将矩阵分解为子矩阵
我有一张大小为412x550的RGB图像。我想把它分成大小为在MATLAB中将矩阵分解为子矩阵,matlab,Matlab,我有一张大小为412x550的RGB图像。我想把它分成大小为2x2的子矩阵。我曾尝试使用mat2cell函数,但它给出了错误。错误是: 输入参数D1到D2的总和必须等于 输入矩阵大小[412 550] 如何解决此错误以获得所需的子矩阵?您可能对语法有点误解。适合您的情况的正确语法是 >> A = rand(412,550); >> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1)) ans =
2x2
的子矩阵。我曾尝试使用mat2cell
函数,但它给出了错误。错误是:
输入参数D1到D2的总和必须等于
输入矩阵大小[412 550]
如何解决此错误以获得所需的子矩阵?您可能对语法有点误解。适合您的情况的正确语法是
>> A = rand(412,550);
>> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1))
ans =
[2x2 double] [2x2 double] ...
[2x2 double] [2x2 double] ...
...
你可能把语法弄错了一点。适合您的情况的正确语法是
>> A = rand(412,550);
>> B = mat2cell(A, 2*ones(size(A,1)/2,1), 2*ones(size(A,2)/2,1))
ans =
[2x2 double] [2x2 double] ...
[2x2 double] [2x2 double] ...
...
您应该使用函数
im2col
。这正是你需要的
A = rand(412,550);
B = im2col(A,[2 2]);
文件在那里:
您应该使用功能
im2col
。这正是你需要的
A = rand(412,550);
B = im2col(A,[2 2]);
文件在那里:
通常,您可以使用以下代码将图像划分为块(用于压缩过程或其他)
一般来说,您可以使用以下代码将图像划分为块(用于压缩过程或其他)
您必须显示您实际尝试的内容(代码本身),因为您可能只是语法有点错误。您也可以尝试一下
im2col
。@Maurits:如果OP有图像处理工具箱(看起来似乎合理,但您永远不知道),您必须显示您实际尝试的内容(代码本身)因为你可能只是把语法弄错了一点。你也可以试试im2col
。@Maurits:如果OP有图像处理工具箱(看起来似乎有道理,但你永远不知道),事实上,Maurits已经在评论中谈过了。实际上,Maurits已经在评论中谈过了。