傅立叶单像素成像

傅里叶单像素成像

张子邦, 陆天傲, 彭军政,等.傅里叶单像素成像技术与应用[J]. 红外与激光工程, 2019, 48(6).

数学原理

通过获取图像的傅里叶谱来重建图像本身。图像的傅里叶谱通过对目标物体投影一些列不同的傅里叶基地图案,并通过单像素探测器测量所得的光强值来获得。图像的重建过程仅仅是依次二维离散逆傅里叶变换。利用自然图像在傅里叶域的稀疏性以实现高效率的成像。
对一个目标物体进行二维成像,本质上就是一个对该目标物体的光强分布的空间信息获取和再现过程。二维单像素成像,就是通过仅适用一个没有空间分辨能力的探测器——单像素探测器——来获取物体的空间信息,并对所获取的信息施以响应的算法来重建物体图像。由此可见,二维单像素成像本身包含了一对关于空间分辨能力的矛盾,即:成像过程对空间分辨能力的需求而单像素探测器缺乏空间分辨能力的矛盾

基于傅里叶分析,1807年,J.Fourier提出傅里叶分析理论,指出任意一个来纳许的信号都可以通过傅里叶基得线性组合构成(傅里叶正变换的意义)。

图1

换言之,任意一个连续信号都可以适用无穷多个空间频率不同的正弦或余弦波进行线性叠加(傅里叶逆变换的物理意义)
二维傅里叶正变换和逆变换
C ( f x , f y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ I ( x , y ) e x p [ − j ⋅ 2 π ( f x x + f y y ) ] d f x d f y C(f_x,f_y)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}I(x,y)exp\left[-j\cdot2\pi(f_xx+f_yy)\right]df_xdf_y C(fx,fy)=++I(x,y)exp[j2π(fxx+fyy)]dfxdfy
I ( x , y ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ C ( f x , f y ) e x p [ − j ⋅ 2 π ( f x x + f y y ) ] d x d y I(x,y)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}C(f_x,f_y)exp\left[-j\cdot2\pi(f_xx+f_yy)\right]dxdy I(x,y)=++C(fx,fy)exp[j2π(fxx+fyy)]dxdy

  • x,y是空间域中的直角坐标;
  • f x ,      f y f_x,\;\;f_y fx,fy是傅里叶域中的直角坐标,对应x,y方向的空间频率;
  • I ( x , y ) I(x,y) I(x,y)表示二维图像
  • C ( f x , f y ) C(f_x,f_y) C(fx,fy)表示二维图像的傅里叶谱
  • j是虚数单位

扩展到离散信号:

C ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 I ( x , y ) e x p [ − j 2 π ( u x M + v y N ) ] C(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}I(x,y)exp\left[-j2\pi\left(\frac{ux}{M}+\frac{vy}{N}\right)\right] C(u,v)=x=0M1y=0N1I(x,

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简的Matlab仿真傅里叶像素成像光场相机的代码,可以作为参考: ```matlab % 定义物体参数 object_size = [100 100]; % 物体大小 object_depth = 10; % 物体深度 object_phase = 2*pi*rand(object_size); % 物体相位 % 定义相机参数 pixel_size = 5e-6; % 像素大小 pixel_num = [64 64]; % 像素数量 focal_length = 50e-3; % 焦距 NA = 0.1; % 数值孔径 wavelength = 532e-9; % 波长 % 定义采样参数 sample_num = 100; % 采样次数 sample_mask = rand(pixel_num) < 0.5; % 采样掩模 % 生成采样矩阵 sample_matrix = zeros(pixel_num(1)*pixel_num(2), sample_num); for i = 1:sample_num % 生成随机相位模式 sample_phase = 2*pi*rand(pixel_num); % 计算相位差 phase_diff = object_phase - sample_phase; % 计算采样光强 sample_intensity = abs(fftshift(fft2(exp(1i*phase_diff)))); sample_intensity = sample_intensity .* sample_mask; sample_intensity = sample_intensity(:); % 添加采样矩阵 sample_matrix(:, i) = sample_intensity; end % 重建图像 reconstruct_image = zeros(object_size); for i = 1:sample_num % 生成随机相位模式 sample_phase = 2*pi*rand(pixel_num); % 计算相位差 phase_diff = object_phase - sample_phase; % 计算反傅立叶变换 sample_intensity = sample_matrix(:, i); sample_intensity = reshape(sample_intensity, pixel_num); sample_intensity = ifft2(ifftshift(sample_intensity)); % 计算重建图像 reconstruct_image = reconstruct_image + sample_intensity .* exp(-1i*phase_diff); end reconstruct_image = abs(reconstruct_image) / sample_num; % 显示结果 figure; subplot(1, 2, 1); imshow(object_phase, []); title('物体相位'); subplot(1, 2, 2); imshow(reconstruct_image, []); title('重建图像'); ``` 这个代码实现了一个简傅里叶像素成像光场相机的仿真,其中包括了物体参数、相机参数、采样参数和重建过程。具体来说,它先生成了一个随机相位的物体,并根据相机参数和采样参数生成了随机的相位模式,然后通过傅里叶变换计算出采样光强,最后通过反傅里叶变换和相位差计算出重建图像。需要注意的是,这个代码还比较简,实际应用中可能需要更多的算法和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值