【发布时间】:2011-06-08 19:11:32
【问题描述】:
我正在MATLAB 从事图像处理项目。为了更轻松地对图像进行预处理,我将其划分为行和列,因此从原始图像(2D uint8 矩阵),现在我有一个 3D 矩阵,就像一个堆栈。
处理完每个块后,我想重新组合图像。问题是行数和列数是动态的,所以我不能使用(或者不知道这里如何使用)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);
有没有更好的方法,以及任何将块连接起来的方法?
【问题讨论】:
-
您可能会发现这很有用:mathworks.com/help/toolbox/images/ref/blockproc.html(或旧版本中的 blkproc)。
标签: matlab image-processing matrix