我正试图从图像中生成鸟瞰图.对于相机内在和变形,我使用的是我从驾驶模拟器中检索到的硬编码值,该模拟器上安装有摄像头.
该代码的基础来自"使用OpenCV库学习OpenCV计算机视觉",第409页.
当我在包含棋盘的图像上运行代码时,每行有3个内角和每列4个内角,我的鸟瞰图是颠倒的.我需要将图像正确地变成鸟眼,这是正面朝上的,因为我需要单应矩阵用于另一个函数调用.
这是输入和输出图像,以及我正在使用的代码:
输入图片:

角落检测到:

输出图像/鸟瞰(颠倒!):

代码:
#include <highgui.h>
#include <cv.h>
#include <cxcore.h>
#include <math.h>
#include <vector>
#include <stdio.h>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char* argv[]) {
if(argc != 4) return -1;
// INPUT PARAMETERS:
//
int board_w = atoi(argv[1]); //inner corners per row
int board_h = atoi(argv[2]); //inner corners per column
int board_n = board_w * board_h;
CvSize board_sz = cvSize( board_w, board_h );
//Hard coded intrinsics for the camera
Mat intrinsicMat …Run Code Online (Sandbox Code Playgroud)