Opencv 捕获&x2019;未在此作用域中声明capture=cvCaptureFromCAM(0);如何修复它

Opencv 捕获&x2019;未在此作用域中声明capture=cvCaptureFromCAM(0);如何修复它,opencv,c++11,Opencv,C++11,我在网上学习OpenCV库检测眼睛的教程 当我编译它时,这个错误出现了,我试图修复它,但没有找到一个错误 解决方案 main.cpp:59:1:错误:未在此作用域中声明“捕获” 捕获=cvCaptureFromCAM(0) 代码很长,我只放了我认为导致此错误的部分。 : #包括 #包括 #包括 #包括 #包括 #包括 #包括 #包括“constants.h” #包括“findEyeCenter.h” #包括“findEyeCorner.h” /**函数头*/ 空隙检测和显示(cv::垫框); i

我在网上学习OpenCV库检测眼睛的教程

当我编译它时,这个错误出现了,我试图修复它,但没有找到一个错误

解决方案

main.cpp:59:1:错误:未在此作用域中声明“捕获” 捕获=cvCaptureFromCAM(0)

代码很长,我只放了我认为导致此错误的部分。 :

#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括“constants.h”
#包括“findEyeCenter.h”
#包括“findEyeCorner.h”
/**函数头*/
空隙检测和显示(cv::垫框);
int main()
{
cv::垫架;
如果(!face_cascade.load(face_cascade_name)){printf(“-(!)加载face cascade”时出错,请更改源代码中的face_cascade_name。\n”);返回-1;};
createCornerKernels();
椭圆(skincrchist,cv::Point(113155.6),cv::Size(23.4,15.2),
43.0,0.0,360.0,cv::Scalar(255,255,255),-1);
捕获=cvCaptureFromCAM(0);
如果(捕获)
{
while(true)
{
帧=cvQueryFrame(捕获);
//镜像
imshow(“视频”,帧);
cv::翻转(帧,帧,1);
frame.copyTo(debugImage);
//将分类器应用于框架
如果(!frame.empty()){
检测显示(帧);
}
否则{
printf(“--(!)未捕获帧--Break!”);
打破
}
imshow(主窗口名称、调试图像);
int c=cv::waitKey(10);
如果((char)c=='c'){break;}
如果((字符)c=='f'){
imwrite(“frame.png”,frame);
}
}
}
释放内核();
返回0;
}

}尝试使用视频捕获(0)

您从未声明过名为
capture
的变量,因此无法将以下变量分配给itI声明的捕获变量:
CvCapture*capture;垫架但当我在/usr/local/include/opencv2/core.hpp:59:0、从/usr/local/include/opencv2/objdetect.hpp:47包含的文件中将参数1从'IplImage*{aka{u IplImage*}编译为'const cv::MatExpr&'的未知转换时,会显示这些错误,from/usr/local/include/opencv2/objdetect/objdetect.hpp:48,from/home/sarmad/work/eyeLike master/src/main.cpp:1:`
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include <iostream>
#include <queue>
#include <stdio.h>
#include <math.h>

#include "constants.h"
#include "findEyeCenter.h"
#include "findEyeCorner.h"



/** Function Headers */
void detectAndDisplay( cv::Mat frame );

int main( ) 
{

  cv::Mat frame;


  if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading face cascade, please change face_cascade_name in source code.\n"); return -1; };

 createCornerKernels();
 ellipse(skinCrCbHist, cv::Point(113, 155.6), cv::Size(23.4, 15.2),
      43.0, 0.0, 360.0, cv::Scalar(255, 255, 255), -1);


capture = cvCaptureFromCAM( 0 );

if( capture)

{
 while( true ) 

 {

  frame = cvQueryFrame( capture );
  // mirror it
  imshow("Video",frame);
  cv::flip(frame, frame, 1);
  frame.copyTo(debugImage);

  // Apply the classifier to the frame
  if( !frame.empty() ) {
    detectAndDisplay( frame );
  }
  else {
    printf(" --(!) No captured frame -- Break!");
    break;
  }

  imshow(main_window_name,debugImage);

  int c = cv::waitKey(10);
  if( (char)c == 'c' ) { break; }
  if( (char)c == 'f' ) {
    imwrite("frame.png",frame);
  }

  }
  }

releaseCornerKernels();

 return 0;
 }