本文主要是介绍人眼是如何看到物体的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我在试图理解人眼如何观察到物体的,发现没有解释。本来我想这应该跟照相机照相的结果一样,但是发现,照相机也不对劲,没有理由能成像啊。
因为物体在散射光的时候,假设散射的光在局部是平行光,那么物体散射的平行光有无数组,这无数组中到达眼睛的光也是无数组,那么眼睛应该选择哪一组光呢?我只是为了引出问题,而说出是那一组,实际情况应该这样建立数学关系,假设用亮度L表示物体反射出来的光,物体的位置为x,表示一个点,物体是一个曲面S。F(x):S->LxD, D表示光的方向,在空间中的方向是三个参数的。空间曲面S是两个参数的。 L是亮度,包含于R+中。
而人的眼睛当成是个大洞O,只有通过这个O的光线会被眼睛捕捉,然后给感受器。
能通过O的光线F受到物体的点x和O中心位置o,和半径,和洞所在平面与x轴的夹角。O是平面上的洞。可以假设这是个约束条件g(O, S)<=0,至于是不等式的原因简单,因为在边界是等于0,但是在圆内也满足需要,所以约束为这个。
问题就是在约束条件下,如何选择眼睛感受器得到的光线H(S1), S1表示感受器的定义域。
再定义函数H:SxD->O,表示从S位置和D方向的光线射到了O内的某个位置。
实际上,对于圆O内的任意一个位置y,对于曲面S内的任意一个位置x,散射光中存在某个方向d,使得H(x,d)=y。这意味着这个洞的每个位置,都接收到了曲面S的每个位置x的光,但是要看到图像,只能在这个洞的每个位置o上选择曲面S的x位置的光,即是x(o)是函数。
这就是等价类的思想了。对于S中的任意位置x,如何做到让满射到O上的发散光再次汇聚到空间上一点z呢?如果能够做到还需要进一步考虑: 随着x连续移动,汇聚到一点的位置z也是连续不重复的移动的,这就是同胚,当光路是可逆的时候。同胚得到的是曲面S1,就是感受器的感光曲面。
这个感光曲面S1的每一个点z, 和S的x是一一对应的。那么O就变成了散射光的裁剪窗口,而之后的光线汇聚了,那么这个聚点的光线的亮度是极强的。
在物理中,是如何做到汇聚光线的呢?就是费马原理。
如果想要光线汇聚于一点z,也就是x上射入裁剪窗口O的所有光线汇聚于z点,那么需要任意路径的光程是恒等的。而xz之间的光程,就是费马原理确定的。
变分法是求极值的方法,所以假设充满xz之间空间的所有介质的折射率都确定了,那么可以利用费马原理求出来xz的极小的光程,或者极大的光程,这是由介质决定的,一般如果只空气介质那就是极短光程。已知光程,也无法直接得到光的路径,因为光程是实数。
但是变分法,不是求光程的,而是求光的路径的。已知折射率了,很容易求出来光的路径。
一个简单的事实是透镜可以做到,如何证明物点Q和像点Q'之间,任意从Q发散的光通过透镜O,都能达到Q'才合理。此时O不是平面中的裁剪窗口了,而是空间上的凸集,这并没有多大的影响。
如何证明透镜能够做到呢? 这需要对透镜的几何形状用函数表示出来,还需要空气和透镜的折射率均给出,然后对于透镜另一侧的位置y利用费马原理求出光路径这个不重要,然后是移动y到某个点z,使得光程r(a)常数,那么这个z就是所说的像点,能够汇聚到达透镜O的所有光线。
关键是不知道如何得到凸透镜的曲面公式,之后的计算就无法建立了。
但是我说一下可能性,原本到达z的穿过平面O的所有光线a的光程r1(a)是连续的,要使得通过在xz之间的裁剪圆位置添加透镜,使得r1(a)为常数,这相当于对曲线r1(a)进行横向拉直操作,至少透镜是个连续函数,可以认为是从原本插入的是0函数逐渐过渡成为透镜函数,这个过程是连续变化的,无法计算就不多说这部分的内容了。
总结就是透镜使得成像成为了可能。因为它把裁剪窗口的光线全部汇聚到了一点。
附加说明一点: 小孔成像的原理。
小孔成像是因为裁剪窗口非常小,使得物体S的某个位置x的发散光,近乎平行光映射到O上,在后面成像的时候,会有一点模糊,毕竟是点放大了一些。所有的点成像都有放大一些,但是只要小孔足够小,光线越接近平行,成像位置接近小孔,这种模糊范围越小。
这篇关于人眼是如何看到物体的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!