打字猴:1.701010285e+09
1701010285 我和数学有约:趣味数学及算法解析 [:1701004271]
1701010286 我和数学有约:趣味数学及算法解析 9.4 左眼到右眼的距离究竟多远
1701010287
1701010288 有时候真觉得自己的眼睛看见的总不是那么真实,如海市蜃楼和3D电影等,仿佛一切都触手可及,然而当我们真正去感知时,才发现很多事物本身没那么简单,我们见到的并不是我们想的那样,这一切归因于什么呢?都是我们的眼睛惹的祸。因为我们对自己左右眼的真实距离都无法度量。
1701010289
1701010290 【问题】左眼到右眼的距离究竟有多远?
1701010291
1701010292 【分析】
1701010293
1701010294 左眼到右眼的距离,我们都觉得很简单,直接测测就知道了,然而如果事物真的都能采取如此简化的方法,则人类的航空航天估计注定是失败的。人类在追求成功的同时,更注重对事物的精准度度量。
1701010295
1701010296 两眼最短距离,能不能直接使用两点之间距离最短来度量呢?两眼之间的直线距离,这也是我们常用的距离,然而采用直线距离计算是否合理呢?
1701010297
1701010298 对于一幅图像本身,一幅灰度图像就是二维平面的灰度值集合,本设计中采用左眼点[48,64],右眼点[71,62],进行图像标记,如图9-5所示,左右眼标记程序设计如下:
1701010299
1701010300     %%左眼[48,64],右眼[71,62]    figure(‘color’,[1,1,1])                   %设置图像背景为白色    imshow(background,[])                     %显示图像    hold on                                   %保持句柄    plot(48,64,‘r.’,‘Markersize’,20)          %画图    plot(71,62,‘r.’,‘Markersize’,20)          %画图
1701010301
1701010302
1701010303
1701010304
1701010305 图9-5 二维图像左右眼标记
1701010306
1701010307 反应到3D曲面上,进行左右眼标记,采用左眼点[20,16,105],右眼点[13,16,72],进行三维曲面标记,MATLAB程序如下:
1701010308
1701010309     %%surf,左眼[20,16,105],右眼[13,16,72]    figure(‘color’,[1,1,1])                    %设置图像背景为白色    mesh(background(1:4:end,1:4:end))          %绘制曲面图    zlim([0 256]);                             %z设置    hold on                                    %保持句柄    plot3(20,16,105,‘r.’,‘Markersize’,50)      %画图    plot3(13,16,72,‘g.’,‘Markersize’,50)    set(gca,‘Xdir’,‘reverse’);                 %设置x轴反向    set(gca,‘Ydir’,‘reverse’);                 %设置y轴反向    box on;grid off                            %显示图形盒子边框,消除网格化
1701010310
1701010311 运行程序输出图形如图9-6所示。
1701010312
1701010313
1701010314
1701010315
1701010316 图9-6 3D曲面左右眼标记
1701010317
1701010318 如图9-5和图9-6所示的图像中两眼位置,计算两眼之间的距离,那么两眼之间的距离究竟有多远?
1701010319
1701010320 采用两点之间直线距离最短,进行两眼距离计算,MATLAB编程如下:
1701010321
1701010322     figure(‘color’,[1,1,1])                          %设置图像背景为白色    imshow(background,[])                            %显示图像    hold on                                          %保持句柄    plot(48,64,‘r.’,‘Markersize’,20)                 %画图    plot(71,62,‘r.’,‘Markersize’,20)    plot([48,71],[64,62],‘b-‘,‘linewidth’,3’)    dmin = sqrt((48-71)^2+(64-62)^2);                %距离计算    disp([‘左右眼的最短路径为:’, num2str(dmin)])    %显示距离计算值
1701010323
1701010324 运行程序结果如下:
1701010325
1701010326     左右眼的最短路径为:23.0868
1701010327
1701010328 输出图形如图9-7所示。
1701010329
1701010330
1701010331
1701010332
1701010333 图9-7 图像平面距离
1701010334
[ 上一页 ]  [ :1.701010285e+09 ]  [ 下一页 ]