Ask Your Question
0

why the source code face detection that find from doc opencv dose'nt show any thing

asked 2015-07-23 08:11:46 -0500

stackprogramer gravatar image

updated 2015-07-23 10:43:02 -0500

hi my code here (according of docs opencv)

#include "opencv2/objdetect.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
/* Function Headers */
void detectAndDisplay( Mat frame );
/* Global variables */
String face_cascade_name = "haarcascade_frontalface_alt.xml";
String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;
String window_name = "Capture - Face detection";
/* @function main */
int main( void )
    {
    VideoCapture capture;
    Mat frame;
    //-- 1. Load the cascades
    if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading face cascade\n"); return -1; };
    if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading eyes cascade\n"); return -1; };
    //-- 2. Read the video stream
    capture.open( -1 );
    if ( ! capture.isOpened() ) { printf("--(!)Error opening video capture\n"); return -1; }
    while (  capture.read(frame) )
        {
        if( frame.empty() )
            {
            printf(" --(!) No captured frame -- Break!");
            break;
            }
        //-- 3. Apply the classifier to the frame
        detectAndDisplay( frame );
        int c = waitKey(10);
        if( (char)c == 27 ) { break; } // escape
        }
    return 0;
    }
/* @function detectAndDisplay */
void detectAndDisplay( Mat frame )
    {
    std::vector<Rect> faces;
    Mat frame_gray;
    cvtColor( frame, frame_gray, COLOR_BGR2GRAY );
    equalizeHist( frame_gray, frame_gray );
    //-- Detect faces
    face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(30, 30) );
    for( size_t i = 0; i < faces.size(); i++ )
        {
        Point center( faces[i].x + faces[i].width/2, faces[i].y + faces[i].height/2 );
        ellipse( frame, center, Size( faces[i].width/2, faces[i].height/2), 0, 0, 360, Scalar( 255, 0, 255 ), 4, 8, 0 );
        Mat faceROI = frame_gray( faces[i] );
        std::vector<Rect> eyes;
        //-- In each face, detect eyes
        eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CASCADE_SCALE_IMAGE, Size(30, 30) );
        for( size_t j = 0; j < eyes.size(); j++ )
            {
            Point eye_center( faces[i].x + eyes[j].x + eyes[j].width/2, faces[i].y + eyes[j].y + eyes[j].height/2 );
            int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 );
            circle( frame, eye_center, radius, Scalar( 255, 0, 0 ), 4, 8, 0 );
            }
        }
    //-- Show what you got
    }

when i debug and run it no have errors and warning but a console show and close output vs 2012 show

'opencv.exe' (Win32): Loaded 'F:\Users\ROOT\Documents\Visual Studio 2012\Projects\opencv3\Release\opencv.exe'. Symbols loaded.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'K:\opencv\build\x86\vc12\bin\opencv_world300.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\lpk.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\usp10.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'opencv.exe' (Win32): Loaded 'F:\Windows\SysWOW64 ...
(more)
edit retag flag offensive close merge delete

Comments

1

You need to have "haarcascade_frontalface_alt.xml" and "haarcascade_eye_tree_eyeglasses.xml" in the appropiate running folder or change the code to include full paths to the current location of the files

LorenaGdL gravatar imageLorenaGdL ( 2015-07-23 09:02:41 -0500 )edit

thanks for replay,but i configured the .xml file in the path project,

stackprogramer gravatar imagestackprogramer ( 2015-07-23 09:33:26 -0500 )edit

And what does that mean? I strongly recommend you to use full paths, try again and report your results here. Also, debugging your program to see at what exact line the error is happening (face/eye .xml loading, capture opening, etc.)

LorenaGdL gravatar imageLorenaGdL ( 2015-07-23 09:41:18 -0500 )edit

thanks very much,yes,debuger is in line

if ( ! capture.isOpened() ) { printf("--(!)Error opening video capture\n"); return -1; }

stop

i use full path,th message video source window opened when i applayed it closed! the picture i added question see please

stackprogramer gravatar imagestackprogramer ( 2015-07-23 10:31:57 -0500 )edit
1

Then there's a problem opening the video capture device. Have you a working webcam or any other suitable device? If so, try changing capture.open( -1 ); by capture.open( 0 ); or capture.open( CV_CAP_ANY );

LorenaGdL gravatar imageLorenaGdL ( 2015-07-23 10:42:30 -0500 )edit

yes,my laptop have webcam,i change it,the console opened and not closed,i test for show image i show image with opencv,but for this source have errors,this source is test in linux on opencv doc,but for win is not work,thanks for reply and attention to my question

stackprogramer gravatar imagestackprogramer ( 2015-07-23 10:51:03 -0500 )edit

I was using code block, recently I tried to use visual studio and I have similar problem. Maybe a problem related configuration of VS but I don't know what.

sturkmen gravatar imagesturkmen ( 2015-07-23 11:46:02 -0500 )edit

thanks for replay,i test the image show open cv sample in s2012 it worked but this source not work

stackprogramer gravatar imagestackprogramer ( 2015-07-23 12:08:07 -0500 )edit
1
sturkmen gravatar imagesturkmen ( 2015-07-23 12:34:13 -0500 )edit

yes,same problem i examine configure vs 2012 tomorrow ,and i add comment result;thanks for replay

stackprogramer gravatar imagestackprogramer ( 2015-07-23 13:03:43 -0500 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2015-07-26 09:40:48 -0500

stackprogramer gravatar image

updated 2015-07-27 05:06:44 -0500

by set microsft symbol serveor warning solved but yet my webcam dont work!!!

i created new ask,for that this problem is related pre-built but answers this is not related to prebuilt link text

i am sure set opencv in vs2012 correctly why dont work?

finally i succeed,i first for PDB errors tools>option>debugging>outputwindow>moduleloadmessage >off and then i tools>option>debugging>symbols>microsoft symbols server not checked and then i chnge capture.open( -1 ); to capture.open( 0 ); now by seting in opencv itworks,thanks very much stackprogramer (just now)edit

edit flag offensive delete link more

Comments

finally i succeed,i first for PDB errors tools>option>debugging>outputwindow>moduleloadmessage >off and then i tools>option>debugging>symbols>microsoft symbols server not checked and then i chnge capture.open( -1 ); to capture.open( 0 ); now by seting in opencv itworks,thanks very much

stackprogramer gravatar imagestackprogramer ( 2015-07-27 05:06:08 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2015-07-23 08:11:46 -0500

Seen: 370 times

Last updated: Jul 27 '15