注:最高票答案NavisLi的极简方案:平行线交点所在楼层就是对楼等高楼层,是正确的。但只适用于相机不倾斜的情况,本文将给出几组判断方法,适用于更广泛的情况。
=====================正文=====================
平行直线是图片测量的基础,无论是45度仰视拍摄还是两栋楼朝向不平行,都可以完美解决这一问题。然而,也并不是画几条平行线那么简单,下面介绍这种方法的原理。
首先在图像上找两组水平平行线。
对于真实世界中的一组平行直线,可以认为它们不相交,也可以认为相交在无穷远处。因为摄像机把直线映射为直线的性质,经过摄像头小孔的成像(射影变换),这一在三维空间处无穷远处的交点在图像上反而可以看见了,这和你能看见笔直铁轨的交汇处是一个道理。
在图像上这一交点称为消影点或者灭点,通过延长平行直线的像得出(蓝色圆点)。当平行线段有很多时,其延长线不唯一,这时就需要使用比如最小二乘法,得到一个离所有平行直线都比较接近的点:
两组水平平行线可以得到两个消影点(其位置有可能出了图像边框),把这两个消影点连起来,就得到了地平线(上图亮蓝色)。地平线上每一个点都是某一组水平平行直线的交点的像,所有水平平行线的交点都在地平线上。图像上所有比地平线高的点,在真实世界中都比摄像头高;所有比地平线低的点,在真实世界中都比摄像头低。摄像头朝向是否水平不影响这些关系的成立。
假设两个楼朝向相同,对应层高度也相同,下面可以使用多种途径解决题主的问题。
平行四边形两条横跨两栋楼房的边相互水平平行,因此二者延长线的交点应该处在无穷远处,因此在图像上也应该在地平线上。在本图中,只有正中的那一层窗户延长线离地平线很近,稍微往高一层或者往低一层,交点与地平线的距离就变得很大:
因此对面等高楼层就是水平平行直线的交点离地平线最接近的那一层。
因此对面等高楼层就是黄色小棒长度和所在楼层半个窗户吻合的那一层。
上述方法不仅可以估计图像中的等高楼层,还可以定量测量出其他很多长度、角度的大小,在图像测量中均有十分广泛的应用。
好了首先非常感谢匿名回答的那位恩人!我度过了一个很愉快的夜晚!谢谢!谢谢!谢谢各位!
画面中心带空调的那个是她的卧室。九楼。我开着窗户一边……一边看着我自己房间一边想着各位知友。爱死你们了!
我先睡去了。累死了。
就这么简单
——————————一晚过去的分割线———————————
昨天晚上快睡觉看到的这个问题,太困了,所以偷懒草草画了个图就睡觉去了( ▼-▼ )
原来那个图确实惨不忍睹...因为多画了一些不必要的线,都怪我(⊃д⊂)
现在换了一个就好多了,所有的线都是可以重合的。
非常感谢
@Devymex Wang在评论帮忙解释原理 ʅ(‾◡◝)ʃ
其实很简单,透视原理,通过窗户看过去,哪一层楼不会出现地板或天花板,或者地板和天花板同时出现,那么必然是这一层楼。
但是我对这里的环境不熟悉,而且图片的分辨率也很差,所以我只能猜大概在这两层之间。
更简单一点,哪层楼能透过窗户看到对面的窗户的全貌,就必然是那层。
这个照片当然也可以用极线法,但是在较近的距离下,视线法比极线法简便易行得多,而且,视线法的精度极高,所以可以直接通过粗略的比较,能否看到窗户、天花板和地板这样简单的方式就能得到结果。两者并无高下,非要扯另一个更专业是很无稽的。
我不得不吐槽这个所谓的专业说法是因为,很多时候你只需要找出一个解决问题的方案就可以了,而不是最专业的方案,而且说白了视线法的精度比极线法大得多,瞄准镜用的就是视线法的原理。
这个问题用极线法可以解,但那个图实在画的太烂,明显线条不重合:
从这个精度更高的极线法的图我们就能看出极线法的弊端,极线法的灭点到了照片的外面(黑色的部分是我补出来的),这张照片还好,在外面一点点,但是如果不把画布拉大,你是找不到灭点的。
极线法的弊端之一就是灭点很可能在外面,最后你找到了灭点,但是还是找不到灭点对应的楼层。
极线法的弊端之二就是,以那位仁兄的线对齐的误差,画到哪一层都是可以的。
这就是第二个弊端,极线法的精度极差。
所以这种问题,正确答案显然是先考虑简便易行精度高的视线法,而极线法作为辅助。
PS:为什么视线法的精度比极线法大得多?因为视线法的线条是光线,从看得到或者看不到什么东西来确定位置,看得到和看不到的区别就是光线是否被阻拦。我们知道光线显然比画的辅助线什么的直多了。
因为intel换酷睿系列商标了: