菲涅尔数字全息是一种数字全息成像技术,通过计算机模拟菲涅尔衍射过程来重建物体的三维信息。下面是一个简单的 MATLAB 代码示例,用于实现菲涅尔数字全息。
% 定义物体
object = imread('object.png');
object = rgb2gray(object);
object = im2double(object);
% 定义参数
wavelength = 0.633e-6; % 波长
z_distance = 0.01; % 物平面到全息平面的距离
pixel_size = 6.5e-6; % 像素大小
N = size(object, 1); % 图像大小
L = N * pixel_size; % 全息平面大小
% 生成全息平面
x = linspace(-L/2, L/2, N);
[X, Y] = meshgrid(x, x);
hologram_plane = exp(1i * 2 * pi / wavelength / z_distance) / (1i * wavelength * z_distance) ...
.* exp(1i * 2 * pi / wavelength * (X.^2 + Y.^2) / (2 * z_distance));
% 计算衍射场
hologram = fft2(object) .* fft2(hologram_plane);
hologram = fftshift(hologram);
% 显示全息图像
figure;
subplot(1, 2, 1);
imshow(object);
title('Object');
subplot(1, 2, 2);
imagesc(abs(hologram));
colormap('gray');
订阅专栏 解锁全文
660

被折叠的 条评论
为什么被折叠?



