如何使用 OpenCV 3.1 调用 line 或 cv::line?

How do I call line or cv::line with OpenCV 3.1?

我正在学习的教程包含如下代码:

line( img_matches, ..., ..., Scalar( 0, 255, 0), 4 );

其中 img_matches 只是一个垫子,接下来的两个参数是点,然后是颜色和宽度。对于本教程,我已经弄清楚了 OpenCV 3.1 中发生的所有其他变化,但我不知道如何画线。文档似乎暗示它只是 cv::line(...),但这没有在我的命名空间中定义,并且范围内有一个 cvLine,但它期待的不是 Mat 看起来像的东西。

我不是 C++ 程序员,所以这可能是一些基础知识。

根据要求,这是我的 headers:

#include <stdio.h>
#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/features2d.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/calib3d.hpp"
#include "opencv2/xfeatures2d.hpp"

我的代码是本教程中 99% 的代码:http://docs.opencv.org/3.0-beta/doc/tutorials/features2d/feature_homography/feature_homography.html

很可能您没有包含所需的 header 文件。

Opencv c++ api 的主要 header 在 opencv.hpp 中,而您具体要求的函数 (cv::line) 在 imgproc.hpp 中(这是也包括在最一般的 opencv.hpp)