Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV cvDrawContours vs drawContours_C++_Opencv_Visual Studio 2012_Contour - Fatal编程技术网

C++ OpenCV cvDrawContours vs drawContours

C++ OpenCV cvDrawContours vs drawContours,c++,opencv,visual-studio-2012,contour,C++,Opencv,Visual Studio 2012,Contour,我刚开始在Visual Studio上使用OpenCV,最近我重新安装了VS2012,以便使用OpenCV 2.4.2使其正常工作 我试图通过鼠标单击顶点并将其推到CvSeq*来计算指定区域的面积,以便与contourArea()函数一起使用 我目前正试图解析一个空的CvSeq*作为自定义鼠标回调函数的最后一个参数,以便添加由x和y坐标组成的CvPoint。然而,无论何时我尝试访问CvSeq*轮廓,我都会得到一个错误。在下面的代码片段中: void CallBackFunc(int event,

我刚开始在Visual Studio上使用OpenCV,最近我重新安装了VS2012,以便使用OpenCV 2.4.2使其正常工作

我试图通过鼠标单击顶点并将其推到CvSeq*来计算指定区域的面积,以便与contourArea()函数一起使用

我目前正试图解析一个空的CvSeq*作为自定义鼠标回调函数的最后一个参数,以便添加由x和y坐标组成的CvPoint。然而,无论何时我尝试访问CvSeq*轮廓,我都会得到一个错误。在下面的代码片段中:

void CallBackFunc(int event, int x, int y, int flags, void* userdata)
{

    CvSeq* contour = (CvSeq*)userdata;
    CvPoint cur;
     if  ( event == EVENT_LBUTTONDOWN )
     {
          cout << "Left button of the mouse is clicked - position (" << x << ", " << y << ") saved as point" << endl;
          // save x,y as a contour point
          cur = cvPoint(x,y);
          cvSeqPush(contour, &cur);
...
void CallBackFunc(int事件、int x、int y、int标志、void*userdata)
{
CvSeq*轮廓=(CvSeq*)用户数据;
点电流;
if(event==event_LBUTTONDOWN)
{
cout
  • cvDrawContours()来自旧的、不推荐使用的c-api,您不应该使用它或任何旧的cv*函数

  • < > >轮廓是来自当前C++ API,使用它与cv::Mat,从cv::命名空间.< /p> 函数

另外,不要再担心CvSeq*或IplImage*。如果你看到任何代码包含这样的神秘内容,请继续

“尝试使用
vector
而不是CvSeq会更好吗?”-是的


此外,如有疑问,请查看和
  • cvDrawContours()来自旧的、不推荐使用的c-api,您不应该使用它或任何旧的cv*函数

  • < > >轮廓是来自当前C++ API,使用它与cv::Mat,从cv::命名空间.< /p> 函数
    另外,不要再担心CvSeq*或IplImage*。如果你看到任何代码包含这样的神秘内容,请继续

    “尝试使用
    vector
    而不是CvSeq会更好吗?”-是的



    此外,如果有疑问,请查看和

    只是好奇,如果您刚刚开始使用OpenCV,为什么不从最新版本(2.4.9)开始,而不是非常旧的版本(2.4.2)?出现了一些安装问题,并返回到一个版本,该版本有一个记录在案的在线安装指南只是好奇,如果您刚刚开始使用OpenCV,为什么不从最新版本(2.4.9)开始,而不是非常旧的版本(2.4.2)?出现了一些安装问题,并返回到一个版本,该版本中有一个记录在案的安装指南OnlineHanks很多@berak!!如果我的Visual Studio auto complete似乎显示的是cvDrawContours()而不是drawContours()的话这是否意味着我的设置有什么问题?这可能意味着,您包括了C-API头而不是C++的头。请包括“OpenCV2/Cyr/Cype .HPP”、“OpenCV2/HuGuI/HigGu.HPP”。等等。嗯,奇怪……我刚刚检查过,这些就是我所包含的内容……这可能是一个版本问题吗?我在OpenCV2.4.2上,从最新的版本恢复过来,试图将其添加到Workik,“OpenCV2/imgproc/imgproc.hpp”确切地说。请确保您没有包含旧的标题,如cv.h beforeAh works now,非常感谢!有没有一种简单的方法可以搜索哪些头文件中包含哪些函数?非常感谢@berak!!如果我的Visual Studio auto complete似乎显示的是cvDrawContours(),而不是drawContours()这是否意味着我的设置有什么问题?这可能意味着,您包括了C-API头而不是C++的头。请包括“OpenCV2/Cyr/Cype .HPP”、“OpenCV2/HuGuI/HigGu.HPP”。等等。嗯,奇怪……我刚刚检查过,这些就是我所包含的内容……这可能是一个版本问题吗?我在OpenCV2.4.2上,从最新的版本恢复过来,试图将其添加到Workik,“OpenCV2/imgproc/imgproc.hpp”确切地说,请确保您没有包含旧的头文件,例如cv.h beforeAh works now,非常感谢!有没有一种简单的方法可以搜索哪些头文件中包含哪些函数?