我正在从事图像处理项目MATLAB。为了更容易地预处理图像,我已经将它分成行和列,所以从原始图像(2D uint8矩阵)开始,现在我有一个3D矩阵,就像一个堆栈。MATLAB - 合并子矩阵
处理每个块之后,我想再次重新构图。问题是行数和列数是动态的,所以我不能使用(或不知道如何在这里使用它)cat
命令或[firstsubmatrix secondsubmatrix]
语法。
顺便说一句,我做的分工是这样的:那么对于每个块
numRows = 3
numCols = 3
blockHeight = originalHeight/numRows;
blockWidth = originalWidth/numCols;
blocks = uint8(zeros(numCols * numRows, blockHeight, blockWidth));
,我填写使用其内容
y0 = (row - 1) * rowHeight + 1;
y1 = row * rowHeight;
x0 = (col - 1) * rowWidth + 1;
x1 = col * rowWidth;
blocks(numBlock, :, :) = originalImage(y0:y1, x0:x1);
是否有这样做的更好的方法,并任何块的方式加入?
您可能会发现这有用:http://www.mathworks.com/help/toolbox/images/ref/blockproc.html(或旧版本的blkproc )。 – 2011-06-08 19:51:32