2016-10-05 85 views
1

的教程中,我下面有一個像下面的代碼:如何使用OpenCV 3.1調用line或cv :: line?

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

其中img_matches只是一個墊子,接下來的兩個參數是點,然後有一個顏色和寬度。我已經想出了OpenCV 3.1中爲本教程改變的所有內容,但我無法弄清楚如何繪製線條。該文檔似乎暗示它只是簡單的cv :: line(...),但是這並沒有在我的命名空間中定義,並且有一個cvLine的作用域,但它期望的是Mat以外的其他東西。

我不是C++程序員,所以這可能是一些基本的東西。

按照要求,這裏是我的頭:

#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

+0

FWIW,我用什麼,我相信這是一個C-通過執行以下操作來實現ish方法:1)將img_matches分配給IplImage指針,2)使用此臨時指針而不是使用img_matches來調用cvLine。我仍然想知道C++的方式。 –

+0

你包括什麼標題? – slawekwin

+1

顯示您的代碼,請 – Miki

回答

1

這是最有可能你還沒有包括必要的頭文件。

爲OpenCV的C主要包頭++ API是opencv.hpp,而功能你特別要求(cv::line)是imgproc.hpp(其中也包括在最一般的opencv.hpp

+0

FWIW,在我的OpenCV版本中是imgproc.hpp,不是核心,所以舊的示例代碼不再工作。 –

+0

@JamesWaldrop謝謝,你是對的 - 我檢查了opencv 2.4並且(錯誤地)認爲它在版本之間沒有改變 – slawekwin