画像を 8 つの異なる行と 1 列に分割する方法を知っている人はいますか? mat2cell() を使用して、wiki のデモを参照として使用してみました。画像を 8 行に分割しようとしましたが、すべての画像パーティション行が表示されるわけではありません。
下の画像を見ると、2、4、6、8が表示されていません。また、なぜ 16 ブロックなのかもわかりません。
誰かが私のコードをチェックするのを手伝ってくれますか? 私は、MatLab の構文と言語にあまり慣れていません。私は今、理解するために最善を尽くしています。
ブロックを分割するための私のコードは次のとおりです。
blockSizeR = 50; % Rows in block.
blockSizeC = 512; % Columns in block.
wholeBlockRows = floor(rows / blockSizeR);
blockVectorR = [blockSizeR * ones(1, wholeBlockRows), rem(rows, blockSizeR)];
wholeBlockCols = floor(columns / blockSizeC);
blockVectorC = [blockSizeC * ones(1, wholeBlockCols), rem(columns, blockSizeC)];
if numberOfColorBands > 1
% It's a color image.
ca = mat2cell(rgbImage, blockVectorR, blockVectorC, numberOfColorBands);
else
ca = mat2cell(rgbImage, blockVectorR, blockVectorC);
end
% Now display all the blocks.
plotIndex = 1;
numPlotsR = size(ca, 1);
numPlotsC = size(ca, 2);
for r = 1 : numPlotsR
for c = 1 : numPlotsC
fprintf('plotindex = %d, c=%d, r=%d\n', plotIndex, c, r);
% Specify the location for display of the image.
subplot(numPlotsR, 1, plotIndex);
% Extract the numerical array out of the cell
% just for tutorial purposes.
rgbBlock = ca{r,c};
imshow(rgbBlock); % Could call imshow(ca{r,c}) if you wanted to.
[rowsB columnsB numberOfColorBandsB] = size(rgbBlock);
% Make the caption the block number.
caption = sprintf('Block #%d of %d\n%d rows by %d columns', ...
plotIndex, numPlotsR*numPlotsC, rowsB, columnsB);
title(caption);
drawnow;
% Increment the subplot to the next location.
plotIndex = plotIndex + 1;
end
end
私はMatLabを初めて使用するので、見逃した簡単な方法はありますか?参照できる参考文献があれば、提案してください。どうもありがとう (: