光学成像系统的模型及MATLAB仿真
光学成像系统的模型及MATLAB仿真
本文将给出相干成像系统、非相干成像系统模型,以及像差对成像系统影响的模型,模型和相关概念主要参考goodman的《傅里叶光学》。
一、相干成像系统
相干成像系统对于振幅来说是线性空间不变系统,存在关系:
其中h(x,y)为点扩展函数,放大倍数M=-di/dg,点扩展函数表达式为:
对应的相干光学传递函数(CTF)为:
一般不考虑比例尺,以及光瞳一般为中心对称,所以将CTF表示为:
二、非相干成像系统
非相干成像系统对于强度的传播是线性空不变的,所以存在
由傅里叶定理可知,像强度的频谱等于物强度频谱与传递函数乘积:
因为人眼或者仪器对图像的视觉效果取决于像所携带信息与直流背景的相对比值,所以利用零频分量对频谱归一化:
所以经代入化简得到光学传递函数(OTF)为:
频谱是复数,可将OTF表示为:
它的模称为调制传递函数(MTF),幅角称为位相传递函数。
OTF的计算
如果P(x,y)只取值0和1,那么OTF可理解为
计算OTF的实例
该传递函数会使得高频分量的对比度降低,可进行相应的MATLAB仿真。对几个参数进行初始化,
lamda = 500e-9;
R = 10e-2;
di = 50e-2;
p0 = 2*R/lamda/di %截止频率
fX = linspace(-10e5,10e5,2000);
fY = linspace(-10e5,10e5,2000);
[fx,fy] = meshgrid(fX,fY);
可以绘制出圆孔的OTF为:
图1 圆孔的光学传递函数
利用这种光学传递函数模拟物体图像经过成像系统之后的成像情况。
设置OTF的截止频率为原图的最大频率的一半,得到如下结果:
三、像差对系统的影响
像差引起了波面的变形(产生波像差),所以像差的存在可表示为在光瞳函数上增加一位相偏差:
聚焦误差是的OTF
若光瞳是矩形,此时OTF为:
不同的W_M对OTF有不同的影响:
当任何一种像差严重时,可以把几何光学对该系统预言的强度点扩展函数(复振幅传播到对应的像面,再求强度即可)做傅里叶变换以得到OTF的良好近似。
四、对超分辨率的理解
一般将瑞利判据所确定的分辨距离当做是成像系统的最小分辨距离(最大分辨率)。这里的分辨距离是指在成像仪器底片上的分辨距离,所以一般要保证像元尺寸小于δ/2才能完整保存光学衍射产生的最小分辨,在此基础上,如果能够得到超越这一分辨率的实际图像(获得截止频率以外的值),那么这个过程就实现了超分辨。
因为空间中的物是有界的,在没有噪声时,在原则上是能够分辨出物的无穷小细节的。它具有相关的数学基础:
定理1 一个空间有界函数的二维傅里叶变换是(f_x,f_y)平面上的解析函数。
定理2 (f_x,f_y)平面上一个任意的解析函数,若在此平面上的一个任意小(但有限)的区域内精确知道这个函数的值,那么整个函数可通过解析延拓手段唯一地定出。
因此实际拍摄到的图片并非没有包含截止频率以外的信息,它的辛格函数的延伸包含在通带内(信号较弱),因此是有可能复原出通带之外的频谱的。
实现超分辨的方法包括基于频率域中的抽样定理的方法;基于长椭球波函数展开式的方法;以及一种适合与数字设备的迭代方法(与GS算法类似),它逐次加强空域和频域中的约束。
附录: OTF的仿真程序
成像中的图片可以自己找一幅图,记得变换为灰度图像,circ是圆域函数(见主程序后面)
clc,clear
close all%initial
lamda = 500e-9; % 光波长
R = 10e-2; % 光瞳半径
di = 50e-2; % 像距
trans = 6.5e-6; %相机的像元大小
p0 = (R/di/lamda)*trans; %这是根据实验参数计算的截止频率
%read the image
I = imread('细胞.jpg');
figure(1),imshow(I);
I = double(I);
[Nx,Ny] = size(I);
p0 = max(fix([Nx,Ny]/2)); % 这里模拟截止频率为图像最大频率的1/2
fX = [0:fix(Nx/2),ceil(Nx/2)-1:-1:1];%linspace(-10e5,10e5,2000);
fY = [0:fix(Ny/2),ceil(Ny/2)-1:-1:1];%linspace(-10e5,10e5,2000);
[fx,fy] = meshgrid(fY,fX); %OTF
p = sqrt(fx.^2+fy.^2);
f =@(fx,fy) 2/pi*(acos(p./p0)-p./p0.*sqrt(1-(p/p0).^2)).*circ(fx,fy,p0);
H0 = f(fx,fy);
mesh(fftshift(H0)) % 显示OTF三维曲面%simulation
F_I = fft2(I); %物强度频谱
G0 = F_I(1,1);
R_I = F_I/G0; %归一化
R_i = R_I.*H0*G0;
i = ifft2(R_i);
figure(2),imshow(uint8(i));
其中circ函数定义如下:
function z = circ(x, y, R)
% function z = circ(x, y, D)
r = sqrt(x.^2+y.^2);
z = double(r<R);
z(r==R) = 0.5;
光学成像系统的模型及MATLAB仿真相关推荐
- MATLAB相干成像系统,光学成像系统的模型及MATLAB仿真
光学成像系统的模型及MATLAB仿真 本文将给出相干成像系统.非相干成像系统模型,以及像差对成像系统影响的模型,模型和相关概念主要参考goodman的<傅里叶光学>. 一.相干成像系统 相 ...
- 同步电机matlab设计,同步发电机matlab仿真 同步电机模型的MATLAB仿真毕业设计.doc...
同步发电机matlab仿真 同步电机模型的MATLAB仿真毕业设计 PAGE PAGE 1 同步发电机matlab仿真 同步电机模型的MATLAB仿真毕业设计 导读:就爱阅读网友为您分享以下" ...
- 同步电机matlab模型,同步电机模型的MATLAB仿真
内容介绍 原文档由会员 bshhty 发布 本论文共27页,12000余字 摘要 采用电力电子变频装置实现电压频率协调控制,改变了同步电机历来的恒速运行不能调速的面貌,使它和异步电机一样成为调速电机大 ...
- 基于排队理论的云计算模型的MATLAB仿真
1.简介与仿真结论 用matlab模拟,基本上可以说是一个排队理论.输入一堆包,经过buffer(一个或者几个都行)传给server,这些包会在buffer里面进行排队,采取FIFO的排序方法. 部分 ...
- matlab单机带负荷系统模型,用MATLAB仿真实现电力系统静态稳定性分析
科技情报开发与经济 SCI-TECH INFORMATION DEVELOPMENT & ECONOMY 2008 年 第 18 卷 第 34 期 1 问题的提出 电力系统静态稳定是一个相对成 ...
- 异步电机模型预测控制MATLAB仿真、感应电机预测控制MATLAB
异步电机预测控制仿真框图如下,仿真采用有限状态机模型预测控制,且逆变器主回路为三电平逆变器,分别给出了转速,电流,三电平中点电位波形,仿真成功,交流QQ:2382677323
- 云端计算模型的MATLAB仿真与分析
1.问题描述: 用matlab模拟,基本上可以说是一个排队理论.输入一堆包,经过buffer(一个或者几个都行)传给server,这些包会在buffer里面进行排队,采取FIFO的排序方法. 用到了一 ...
- matlab对声场仿真,基于声线模型的水声传播MATLAB仿真.pdf
基于声线模型的水声传播MATLAB仿真.pdf 科技广场 2007.9 基于声线模型的水声传播MATLAB仿真 熊光耀 杨 琴 Ciong GuangyaoYang Qin (江西中医学院计算机系,江 ...
- 直线电机的matlab仿真,matlab直线电机的制作
本科毕业论文:直线电机 PID 控制器设计 基于 MATLAB 的直线电机 PI... 异形永磁体圆柱型直线电机的优化设计 [J], 罗辞勇; 李竹田; 沈启平 2.基于 MATLAB 的永磁体直线电 ...
- fvdm 跟驰模型 matlab仿真_MATLAB数值计算在光学仿真和教学中的应用
摘要:在光学教学过程中从基本的物理概念出发,建立相应的理论模型,并将光学问题归纳为特征方程求根.积分求解.常微分方程求解等几类数值求解问题,结合MATLAB强大的数值计算和图形显示功能,完成光学问题的 ...
最新文章
- 信息理论基础 周炯槃 常迥
- 硬中断 / 软中断的原理和实现
- 轻量级的c语言开发环境搭建,win下轻量级的c语言开发环境配置:vsc + gcc
- leetcode算法题--排序链表★
- (DT系列五)Linux kernel 是怎么将 devicetree中的内容生成plateform_device【转】
- spring + maven项目 互相依赖的小坑
- Android Day05-网络编程之文件上传
- 美团王兴评价马云:“我仍然认为他有诚信问题”,大家怎么看?
- Cloud一分钟 | 云存储服务商​Egnyte获7500万美元E轮融资,高盛领投
- 收获,不止SQL优化——抓住SQL的本质--第四章
- html中使用style设置背景
- Unity PlayerPrefs类进行扩展(整个对象进行保存)
- T60 Fan Error 解决办法.转自ZOL产品论坛-作者zxymb
- (在ObjectARX中使用MFC)
- krpano 小行星开场和自动旋转
- 遍历一个文件夹下的所有文件和子文件夹
- 根据经纬度计算两地距离
- WinDBG扩展命令的工作原理
- 用IDEA创建java项目并跑起来
- 设计一个算法的方法论