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 中显示
Visual Studio、OpenCV、Python - 应用程序中没有网络摄像头