Opencv 捕获&x2019;未在此作用域中声明capture=cvCaptureFromCAM(0);如何修复它
我在网上学习OpenCV库检测眼睛的教程 当我编译它时,这个错误出现了,我试图修复它,但没有找到一个错误 解决方案 main.cpp:59:1:错误:未在此作用域中声明“捕获” 捕获=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
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括“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;
}