Opencv:代码中没有错误,但网络摄像头未显示在结果中

Posted

技术标签:

【中文标题】Opencv:代码中没有错误,但网络摄像头未显示在结果中【英文标题】:Opencv : No error in code , but webcam not showing in result 【发布时间】:2016-07-22 03:37:40 【问题描述】:

我正在训练tutorial in opencv。

编译时没有错误。

我知道本教程的代码是针对 opencv2.4 的,我已经更改了 cvquery 和 videoframe 的编码。

我的输出是这样的

.

我的网络摄像头工作正常,但结果中没有显示任何内容。

【问题讨论】:

“这是我的代码”和“我已经更改了编码”这句话似乎相互矛盾。 对不起,起初我打算附上我的代码,但它总是出现错误。谢谢你告诉我这个矛盾的消息。我真的很想解决这个问题 如果您有问题直接附加到这里,请将其放在pastebin 或类似网站上并添加链接。 【参考方案1】:

如果您希望使用 HaarCascades 执行人脸检测,可以使用以下代码:

  #include <opencv2/objdetect/objdetect.hpp>
     #include <opencv2/highgui/highgui.hpp>
     #include <opencv2/imgproc/imgproc.hpp>
     #include <iostream>
     #include <stdio.h>
     using namespace std;
     using namespace cv;
     CascadeClassifier facecascade;

     int main()
     
       Mat frame;
      facecascade.load("haarcascade_frontalface_alt.xml");
      if(facecascade.empty())
      
        cout<<"Error";

      

       VideoCapture cap(0);
       int i=0,j=0,k=0;
         while(1)
         
          cap>>frame;  
          Mat frame_gray;
         cvtColor(frame,frame_gray,CV_BGR2GRAY);
         vector<Rect>faces;

         facecascade.detectMultiScale(frame_gray,faces,1.1,2,0|CV_HAAR_SCALE_IMAGE,Size(70,70));
         if(faces.size()>0)
         

         for(i=0;i<faces.size();i++)
            
            rectangle(frame_gray,faces[i],Scalar(200,200,250),2,8,0);

            
         char no[5];
         sprintf(no,"No. of faces detected = %d",int(faces.size()));
         putText(frame_gray,no,Point(10,30),FONT_HERSHEY_TRIPLEX,1,Scalar(255,255,255),1);
            imshow("out",frame_gray);
          char c= waitKey(5);
           if(c=='b')
           break;
         
            return 0;
       

【讨论】:

由于我不知道您对 OpenCV 示例代码做了哪些更改,因此我无法指出您可能做错了什么。尝试运行我的代码,看看是否有结果

以上是关于Opencv:代码中没有错误,但网络摄像头未显示在结果中的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 网络摄像头提要未在 PictureBox Visual Studio 2015 中显示

在opencv中使用网络摄像头未显示图像

Visual Studio、OpenCV、Python - 应用程序中没有网络摄像头

使用 OpenCV 和 Python 显示网络摄像头源

在覆盆子上使用带有多个网络摄像头的 opencv 来拍摄延时摄影时出现多个 v4l 错误

网络摄像头流使用 OpenCV 3.0 + Visual Studio 2013 进行镜像