想要把前视图转化为鸟瞰图,有两种做法
1.在没有标定的情况下,只能选取四个点对了
在有标定的情况下,可以直接使用标定的参数
这里主要介绍1
1.没有标定的情况下,主要用到了两个函数
M = cv2.getPerspectiveTransform(src, dst)
warped = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0] + 1080))
cv2.getPerspectiveTransform 从四个点对中计算透视变换,返回值为3*3的透视变换矩阵
cv2.warpPerspective 计算透视变换后的图像
这里自己遇到的坑是,在计算透视变换矩阵的时候,怎么获取那四个点对,翻了很多blog,都没搞清,最后认认真真的找了一个认认真真的阅读之后,总算摸到门道了,有了一种融会贯通的感觉。
现在的目标是将图像由前视图转化为鸟瞰图,根据先验知识,在鸟瞰图下,长方形物体显示出来肯定是长方形,因此,我们只要在前视图中找到一个正方形的物体,并指定他在俯视图中的坐标就可以了,这里有个但是,由于先验信息里面只有矩形这个信息,具体的长宽比什么的,以及实际的大小未知,所以转化到鸟瞰图下并不能反应物体的真实长度。
这里怎么定义转化后的坐标要自己把握