如何生成特定的合成图像

时间:2016-04-06 19:12:48

标签: image matlab matrix colors fft

我想生成一个黑色的64x64像素图像,中间有一个5x10像素的白色矩形,然后使用2D傅立叶变换绘制原始图像,模块,相位和恢复的图像。

这是我的代码:

image_1_black = double(zeros(64, 64, 3, 'uint8'));
image_1_white = double(ones(5, 10, 3, 'uint8'));

% I need to do something like this:
% image1 = image_1_black with image_1_white

IMAGE_1 = fft2(image_1);
IMAGE_1 = fftshift(IMAGE_1);

IMAGE_1_REC = fftshift(IMAGE_1);
image_1_rec = ifft2(IMAGE_1_REC);

figure;
subplot(2, 2, 1);
imagesc(image_1);
colormap(gray); 
axis off;
title('Original image');

subplot(2, 2, 2);
imagesc(100*log(1 + abs(IMAGE_1)));
colormap(gray);
axis off;
title('Magnitude spectrum');

subplot(2, 2, 3);
imagesc(angle(IMAGE_1));
colormap(gray);
axis off;
title('Phase spectrum');

subplot(2, 2, 4);
imagesc(image_1_rec);
colormap(gray);
axis off;
title('Imagen recuperada');

我知道如何单独生成两个图像,但不知道如何将它们组合起来以便在我的代码正常工作的情况下获得所需的图像。

谢谢大家!

1 个答案:

答案 0 :(得分:1)

image_1_black = double(zeros(64, 64, 3, 'uint8'));
image_1_black(29:34,24:39,:)=255;

enter image description here