相关疑难解决方法(0)

用于循环以将矩阵分割成相等大小的子矩阵

给定一个说大小的方阵400x400,如何将其拆分为20x20使用for-loop的组成子矩阵?我甚至不知道从哪里开始!

我想我想要的东西:

[x,y] = size(matrix)

for i = 1:20:x
    for j = 1:20:y
Run Code Online (Sandbox Code Playgroud)

但我不确定如何继续下去.思考?

matlab loops octave

11
推荐指数
5
解决办法
7998
查看次数

MATLAB - 合并子矩阵

我正在MATLAB中开展一个图像处理项目.为了更容易地预处理图像,我将其划分为行和列,因此从原始图像(2D uint8矩阵)开始,现在我有一个3D矩阵,就像堆栈一样.

图像分解

处理完每个块之后,我想再次重新构图.问题是行数和列数是动态的,所以我不能使用(或者不知道如何在这里使用它)cat命令或[firstsubmatrix secondsubmatrix]语法.

顺便说一句,我这样做了这个部门:

numRows = 3
numCols = 3
blockHeight = originalHeight / numRows;
blockWidth = originalWidth / numCols;

blocks = uint8(zeros(numCols * numRows, blockHeight, blockWidth));
Run Code Online (Sandbox Code Playgroud)

因此,对于每个块,我使用填充其内容

y0 = (row - 1) * rowHeight + 1;
y1 = row * rowHeight;
x0 = (col - 1) * rowWidth + 1;
x1 = col * rowWidth;

blocks(numBlock, :, :) = originalImage(y0:y1, x0:x1);
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法,以及任何方式使块加入?

matlab image-processing matrix

6
推荐指数
1
解决办法
1878
查看次数

将图像分成3*3块

我有一个矩阵,其尺寸不会是3的倍数,也可能是.我们如何将整个图像分成3*3矩阵的块.(可以忽略不属于3*3倍数的最后一个.此外,3*3矩阵可以保存在数组中.

a=3; b=3; %window size
x=size(f,1)/a; y=size(f,2)/b; %f is the original image
m=a*ones(1,x); n=b*ones(1,y);
I=mat2cell(f,m,n);
Run Code Online (Sandbox Code Playgroud)

size matlab block image-processing pixels

2
推荐指数
1
解决办法
3679
查看次数

标签 统计

matlab ×3

image-processing ×2

block ×1

loops ×1

matrix ×1

octave ×1

pixels ×1

size ×1