matlab1) 建立输入图像,在64 64的黑色图像矩阵的中心建立16 16的白色矩形图像点阵,形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。
时间: 2024-06-08 18:11:24 浏览: 57
下面是MATLAB代码实现:
```matlab
% 建立64x64的黑色图像矩阵
image = zeros(64, 64);
% 在中心建立16x16的白色矩形图像点阵
rect_size = 16;
rect_start = 24;
image(rect_start:rect_start+rect_size-1, rect_start:rect_start+rect_size-1) = 1;
% 显示原始图像
figure;
imshow(image);
title('原始图像');
% 进行二维傅里叶变换
fft_image = fft2(image);
fft_image = fftshift(fft_image); % 将中心移到图像中心
% 显示变换图像的幅度谱
figure;
imshow(log(abs(fft_image)+1), []);
title('二维傅里叶变换结果的幅度谱');
```
执行上述代码,会得到如下两张图像:
原始图像:
![原始图像](https://img-blog.csdnimg.cn/20210921164831484.png)
二维傅里叶变换结果的幅度谱:
![二维傅里叶变换结果的幅度谱](https://img-blog.csdnimg.cn/20210921164924212.png)
相关问题
matlab在64*64的黑色图像矩阵的中心建立16*16的白色矩形图像点阵,形成图像文件。
可以使用以下代码实现:
```matlab
% 定义图像大小和矩形大小
img_size = 64;
rect_size = 16;
% 创建黑色图像矩阵
img = zeros(img_size);
% 计算矩形左上角和右下角的坐标
rect_x1 = floor((img_size-rect_size)/2) + 1;
rect_y1 = floor((img_size-rect_size)/2) + 1;
rect_x2 = rect_x1 + rect_size - 1;
rect_y2 = rect_y1 + rect_size - 1;
% 在矩形内设置像素值为255(白色)
img(rect_y1:rect_y2, rect_x1:rect_x2) = 255;
% 显示图像
imshow(img);
% 保存图像到文件
imwrite(img, 'white_rect.png');
```
运行以上代码后,将会在当前目录下生成名为`white_rect.png`的图像文件,其中心为16*16的白色矩形。
用matlab写。1)建立输入图像,在64x64的黑色图像矩阵的中心建立4x4的白色矩形图像点阵,形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。
以下是MATLAB代码实现:
% 设置图像大小为64x64,创建全黑图像矩阵
img_size = 64;
img = zeros(img_size);
% 在中心4x4的位置上创建白色矩形
rect_size = 4;
rect_start = (img_size - rect_size) / 2 + 1;
img(rect_start:rect_start+rect_size-1, rect_start:rect_start+rect_size-1) = 1;
% 显示输入图像
subplot(1,2,1);
imshow(img);
title('Input Image');
% 进行二维傅立叶变换
fft_img = fft2(img);
% 中心化
fft_img = fftshift(fft_img);
% 显示变换图像
subplot(1,2,2);
imshow(log(abs(fft_img)+1), []);
title('FFT Image');
其中,第一个 subplot 展示的是输入图像,第二个 subplot 展示的是变换后的图像。使用 log(abs(fft_img)+1) 转换图像,以便更好地展示变换后的结果。
阅读全文