I=zeros(256,256); I(1:256,1:256)=50; I(50:206,50:206)=100; I(100:156,100:156)=150; A=I/256;怎么改为生成128*128的不要缩小直接生成
时间: 2024-03-20 07:39:20 浏览: 41
要生成一个 128x128 的矩阵,可以将原始矩阵 I 缩小一半,然后再取出其中心的 128x128 部分。具体操作如下:
```matlab
I = zeros(256,256);
I(1:256,1:256) = 50;
I(50:206,50:206) = 100;
I(100:156,100:156) = 150;
A = I / 256;
% 将矩阵缩小一半
B = imresize(A, 0.5);
% 取出中心的 128x128 部分
[h, w] = size(B);
x1 = floor((w - 128) / 2) + 1;
y1 = floor((h - 128) / 2) + 1;
x2 = x1 + 127;
y2 = y1 + 127;
C = B(y1:y2, x1:x2);
% 显示结果
imshow(C);
```
这样就能生成一个不缩小直接生成的 128x128 矩阵。
相关问题
I=zeros(256,256); I(1:256,1:256)=50; I(50:206,50:206)=100; I(100:156,100:156)=150; A=I/256;什么意思
这段 MATLAB 代码定义了一个大小为 `256*256` 的矩阵 `I`,并且对其进行了赋值操作。具体来说,将 `I` 的所有元素初始化为 `0`,然后将 `(1:256, 1:256)` 子矩阵中的所有元素赋值为 `50`,将 `(50:206, 50:206)` 子矩阵中的所有元素赋值为 `100`,将 `(100:156, 100:156)` 子矩阵中的所有元素赋值为 `150`。
接着,将矩阵 `I` 中的所有元素除以 `256`,得到的结果赋值给矩阵 `A`。这样就生成了一个大小为 `256*256` 的矩阵 `A`,其中包含了三个不同的灰度值区域,并且将像素值缩放到 `[0,1]` 区间内。
这个矩阵 `A` 可以用于各种图像处理任务,例如:图像增强、图像分割、图像识别等。
I=zeros(256,256); I(1:256,1:256)=50; I(50:206,50:206)=100; I(100:156,100:156)=150; A=I/256;怎么改成128*128
可以使用 MATLAB 中的 `imresize` 函数将 `256*256` 的矩阵缩放成 `128*128` 大小的矩阵,如下所示:
```matlab
I = zeros(256, 256);
I(1:256, 1:256) = 50;
I(50:206, 50:206) = 100;
I(100:156, 100:156) = 150;
% 缩放成 128*128 的矩阵
A = imresize(I, [128 128]) / 256;
```
这里使用 `imresize` 函数将 `I` 矩阵缩放成 `128*128` 的矩阵,并且除以 `256` 将像素值缩放到 `[0, 1]` 区间内。
阅读全文