光学成像模型\和物距、像距、焦距、三者关系\和世界坐标、相机坐标、图像坐标、像素坐标关系\和图像畸变标定处理(二)

本文详细介绍了光学成像模型,包括凸透镜的物距、像距、焦距关系,以及相机小孔成像模型。讨论了世界坐标系、相机坐标系、图像坐标系和像素坐标系之间的转换,并探讨了图像畸变标定,特别是径向和切向畸变的数学模型。文章还涵盖了相机投影成像的数学模型和实际成像中存在的畸变问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来自百度百科:https://zhidao.baidu.com/question/55907940.html
原文链接:https://blog.csdn.net/qq_35250841/article/details/106198870
原文链接:😕/blog.csdn.net/weixin_44523062/category_9977613.html

零、小孔成像模型
在这里插入图片描述
在这里插入图片描述

一、凸透镜,物距、像距、焦距、三者关系

物距为u,像距为v,焦距为f,三者的关系为:1/v +1/u=1/f。

根据该关系,不同的物距、像距、焦距的关系使得成像特点不同:

1、当物距大于2倍焦距时,则像距在1倍焦距和2倍焦距之间,成倒立、缩小的实像。此时像距小于物距,像比物小,物像异侧。应用:照相机、摄像机。

2、当物距等于2倍焦距时,则像距也在2倍焦距, 成倒立、等大的实像。此时物距等于像距,像与物大小相等,物像异侧。应用:测焦距。

3、当物距小于2倍焦距、大于1倍焦距时,则像距大于2倍焦距, 成倒立、放大的实像。此时像距大于物距,像比物大,物像异侧。应用:投影仪、幻灯机、电影放映机。

4、当物距等于1倍焦距时,则不成像,成平行光射出。

5、当物距小于1倍焦距时,则成正立、放大的虚像。此时像距大于物距,像比物大,物像同侧。应用:放大镜。

在这里插入图片描述
在这里插入图片描述

二、凸透镜光学成像模型

最上面一条从物体发出并平行于透镜的光轴,经过透镜折射后穿过另一侧的焦点。

第二条光束穿过透镜左侧的焦点,经过折射,与光轴平行。

第三条光束直接穿过透镜中心。因为透镜垂直于主光轴并且厚度很小,当光透过其中心时,折射可以忽略不计。

### MATLAB 实现透镜成像模拟 #### 创建透镜模型并定义透过率函数 为了在MATLAB中创建透镜模型,可以利用维高斯分布来近似表示理想薄透镜的透过率函数。该函数描述了光通过透镜后的相位变化。 ```matlab function T = lens_transmittance(x, y, f) % 定义透镜焦距f下的透过率函数T k = 2 * pi; % 波数k=2π/λ,默认波长为1单位长度 r_squared = x.^2 + y.^2; phase_shift = exp(-1i * (r_squared / (2 * f))); T = abs(phase_shift); % 取绝对值得到强度分布 end ``` 此段代码实现了给定坐标位置处由焦距`f`决定的理想薄透镜透过率计算[^1]。 #### 几何光学中的像距关系求解 对于简单凸透镜而言,在已知离u的情况下,可以通过下面公式得到像的位置v: \[ \frac{1}{u}+\frac{1}{v}=\frac{1}{f}\] 其中\( u>0\)代表实放置于左侧;当\( v<0\)时表示虚像形成于右侧。这里提供了一个用于解决上述方程的小工具函数。 ```matlab function [v] = image_distance(u,f) % 计算像距v if u == f || u <= 0 error('Invalid object distance'); end v = 1 ./ ((1./f)-(1./u)); end ``` 这段脚本能够帮助快速获得不同条件下对应的像距值[^2]。 #### 图像处理与显示最终结果 假设输入一幅灰度图作为待观察对象,则可通过傅里叶变换将其频谱映射至空间频率域内再乘上之前建立好的透镜传递特性矩阵完成卷积操作从而实现仿真实验目的。最后逆向转换回实空间查看输出图形即可看到经过特定参数设定下所形成的清晰与否程度不一的新图案。 ```matlab % 加载测试图片 I = imread('test_image.png'); grayImage = rgb2gray(I); % 设置理尺寸采样间隔 dx = dy = 0.01; % 像素(m) [x,y]=meshgrid((-(size(grayImage,2)-1)/2:(size(grayImage,2)-1)/2)*dx,... (-(size(grayImage,1)-1)/2:(size(grayImage,1)-1)/2)*dy); % 设定透镜参数 lens_focal_length = 0.5; % 获取透镜透过率 transmission_function=lens_transmittance(x,y,lens_focal_length); % 对原始图像做FFT并将中心移到中间 fft_grayImage = fftshift(fft2(double(grayImage))); % 应用透镜效应 filtered_fft = transmission_function .* fft_grayImage; % 进行IFFT恢复图像 recovered_image = real(ifft2(ifftshift(filtered_fft))); figure; subplot(1,2,1); imshow(uint8(recovered_image),[]); title('Simulated Image'); subplot(1,2,2); surf(abs(transmission_function)); shading interp; colorbar; title('Lens Transmittance Function Surface Plot'); ``` 以上展示了完整的流程:从加载源文件开始直到展示出带有模糊效果的结果以及对应的空间滤波器表面形态图表[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值