百科问答小站 logo
百科问答小站 font logo



如何根据一张 A 楼照 B 楼的照片判断出这张照片是 A 楼的几层? 第1页

  

user avatar   wang-xiao-long-5-98 网友的相关建议: 
      

注:最高票答案NavisLi的极简方案:平行线交点所在楼层就是对楼等高楼层,是正确的。但只适用于相机不倾斜的情况,本文将给出几组判断方法,适用于更广泛的情况。

=====================正文=====================
平行直线是图片测量的基础,无论是45度仰视拍摄还是两栋楼朝向不平行,都可以完美解决这一问题。然而,也并不是画几条平行线那么简单,下面介绍这种方法的原理。

首先在图像上找两组水平平行线。



对于真实世界中的一组平行直线,可以认为它们不相交,也可以认为相交在无穷远处。因为摄像机把直线映射为直线的性质,经过摄像头小孔的成像(射影变换),这一在三维空间处无穷远处的交点在图像上反而可以看见了,这和你能看见笔直铁轨的交汇处是一个道理。

在图像上这一交点称为消影点或者灭点,通过延长平行直线的像得出(蓝色圆点)。当平行线段有很多时,其延长线不唯一,这时就需要使用比如最小二乘法,得到一个离所有平行直线都比较接近的点:


两组水平平行线可以得到两个消影点(其位置有可能出了图像边框),把这两个消影点连起来,就得到了地平线(上图亮蓝色)。地平线上每一个点都是某一组水平平行直线的交点的像,所有水平平行线的交点都在地平线上。图像上所有比地平线高的点,在真实世界中都比摄像头高;所有比地平线低的点,在真实世界中都比摄像头低。摄像头朝向是否水平不影响这些关系的成立。

假设两个楼朝向相同,对应层高度也相同,下面可以使用多种途径解决题主的问题。


  • 方法1:找到对面楼层某些窗台,使得窗台上沿比地平线高(因此在真实世界中比摄像头高),窗台下沿比地平线低(因此在真实世界中比摄像头低),这一层与摄像头同层。当相机没有旋转时,地平线与图像边缘平行,因此找到一个消影点就找了地平线,但是大多数情况下相机都有一定旋转,因此只有找出两组水平平行线,得到两个消影点,才能准确定位地平线。
  • 方法2: 因为拍摄者所在的半个窗户下沿和对面楼某层上所有半个窗户下沿是水平平行的,把这两个半窗户下沿连起来,应该得到一个近似梯形(对应三维空间中水平的平行四边形):

平行四边形两条横跨两栋楼房的边相互水平平行,因此二者延长线的交点应该处在无穷远处,因此在图像上也应该在地平线上。在本图中,只有正中的那一层窗户延长线离地平线很近,稍微往高一层或者往低一层,交点与地平线的距离就变得很大:

因此对面等高楼层就是水平平行直线的交点离地平线最接近的那一层。

  • 方法3: 首先在地平线上随便找一个点(蓝色圆点),把这一点和摄像者所在窗台下沿的两边连起来。然后把左边的消影点(在图像外面)和这一图形相连,得到一系列黄色小棒,因为从左边消影点发出的所有直线都相互水平平行,而任一消影点发出的直线也水平平行,所以这些小棒棒也全都水平平行,长度相等(因为相邻小棒棒之间的四边形在真实世界中对边水平平行,是平行四边形)。在这些黄色小棒棒里,只有最上面的小棒棒的长度恰好和那一层的半个窗户长度近似。其他黄色小棒棒并不与对应楼层半个窗户吻合,说明它们其实是悬浮在两楼之间的半空中,而不是贴在对面楼面上。


因此对面等高楼层就是黄色小棒长度和所在楼层半个窗户吻合的那一层。


上述方法不仅可以估计图像中的等高楼层,还可以定量测量出其他很多长度、角度的大小,在图像测量中均有十分广泛的应用。


user avatar    网友的相关建议: 
      

好了首先非常感谢匿名回答的那位恩人!我度过了一个很愉快的夜晚!谢谢!谢谢!谢谢各位!

画面中心带空调的那个是她的卧室。九楼。我开着窗户一边……一边看着我自己房间一边想着各位知友。爱死你们了!

我先睡去了。累死了。


user avatar   navisli 网友的相关建议: 
      

就这么简单


——————————一晚过去的分割线———————————

昨天晚上快睡觉看到的这个问题,太困了,所以偷懒草草画了个图就睡觉去了( ▼-▼ )

原来那个图确实惨不忍睹...因为多画了一些不必要的线,都怪我(д)

现在换了一个就好多了,所有的线都是可以重合的。

非常感谢

@Devymex Wang

在评论帮忙解释原理 ʅ(‾◡◝


user avatar   Ivony 网友的相关建议: 
      

其实很简单,透视原理,通过窗户看过去,哪一层楼不会出现地板或天花板,或者地板和天花板同时出现,那么必然是这一层楼。

但是我对这里的环境不熟悉,而且图片的分辨率也很差,所以我只能猜大概在这两层之间。


更简单一点,哪层楼能透过窗户看到对面的窗户的全貌,就必然是那层。


这个照片当然也可以用极线法,但是在较近的距离下,视线法比极线法简便易行得多,而且,视线法的精度极高,所以可以直接通过粗略的比较,能否看到窗户、天花板和地板这样简单的方式就能得到结果。两者并无高下,非要扯另一个更专业是很无稽的。


我不得不吐槽这个所谓的专业说法是因为,很多时候你只需要找出一个解决问题的方案就可以了,而不是最专业的方案,而且说白了视线法的精度比极线法大得多,瞄准镜用的就是视线法的原理。

这个问题用极线法可以解,但那个图实在画的太烂,明显线条不重合:


从这个精度更高的极线法的图我们就能看出极线法的弊端,极线法的灭点到了照片的外面(黑色的部分是我补出来的),这张照片还好,在外面一点点,但是如果不把画布拉大,你是找不到灭点的。

极线法的弊端之一就是灭点很可能在外面,最后你找到了灭点,但是还是找不到灭点对应的楼层。


极线法的弊端之二就是,以那位仁兄的线对齐的误差,画到哪一层都是可以的。

这就是第二个弊端,极线法的精度极差。


所以这种问题,正确答案显然是先考虑简便易行精度高的视线法,而极线法作为辅助。


PS:为什么视线法的精度比极线法大得多?因为视线法的线条是光线,从看得到或者看不到什么东西来确定位置,看得到和看不到的区别就是光线是否被阻拦。我们知道光线显然比画的辅助线什么的直多了。


user avatar    网友的相关建议: 
      

因为intel换酷睿系列商标了:




  

相关话题

  本人文科生 喜欢数学 大学想读数学系但没选物理 怎么办? 
  如何尽可能精确地称量 π 斤肉? 
  有哪些指标可以描述两个图(graph)的相似度? 
  为什么中国小学数学教育要揪“除”和“除以”的区别? 
  清华踩线和复旦数学选哪个? 
  有多少个数学家叫 Kolmogorov ? 
  假如一个人立志要在有生之年攻克哥德巴赫猜想,那他应该付出哪些努力? 
  计算机编程算是否是理科中比较偏文的科目? 
  为什么有理数 1/49 看起来这么像是个无限不循环小数?循环节在哪里? 
  在一个现实中的数轴上可以找出无理数吗? 

前一个讨论
阿基里斯和乌龟的悖论真的不能用常规逻辑推翻吗?
下一个讨论
为什么粟裕去世后才平反?





© 2024-11-23 - tinynew.org. All Rights Reserved.
© 2024-11-23 - tinynew.org. 保留所有权利