2016-04-02 6 views
-3

Я тренируюсь tutorial in opencv.Opencv: Ошибка в коде, но веб-камера не отображается в результатах

у него не было ошибок при компиляции.

Я знаю, что код для учебника для opencv2.4, и я изменил кодировку для cvquery и videoframe.

Мой выход как этот

.

Моя веб-камера работает нормально, но ничего не показывает в моем результате.

+0

Заявления «Это мой код» и «я должен был изменить кодировку», кажется, противоречат друг другу. –

+0

Извините, сначала я планирую прикрепить свой код, но он продолжает выходить с ошибкой. Спасибо, что сообщили мне противоречивое сообщение. Я очень хочу, чтобы решить эту проблему. –

+0

Если у вас есть проблемы с подключением прямо здесь, поставьте его на [pastebin] (http://pastebin.com/) или на каком-то подобном сайте и добавьте ссылку. –

ответ

0

Если вы хотите, чтобы выполнить обнаружение лица с помощью 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; 
     } 
+0

Поскольку я не знаю, какие изменения вы внесли в образец кода OpenCV, я не могу указать, что вы можете делать неправильно. Попробуйте использовать мой код и посмотрите, получаете ли вы результат –