-3

opencv でチュートリアルをトレーニングしています。

コンパイル時にエラーはありませんでした。

チュートリアルのコードが opencv2.4 用であることはわかっており、cvquery と videoframe のコーディングを変更しました。

私の出力はこのようなものです

.

ウェブカメラは正常に動作していますが、結果に何も表示されません。

4

1 に答える 1

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;
       }
于 2016-04-05T03:59:30.883 に答える