why the source code face detection that find from doc opencv dose'nt show any thing
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 ...
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
thanks for replay,but i configured the .xml file in the path project,
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.)
thanks very much,yes,debuger is in line
stop
i use full path,th message video source window opened when i applayed it closed! the picture i added question see please
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 );
bycapture.open( 0 );
orcapture.open( CV_CAP_ANY );
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
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.
thanks for replay,i test the image show open cv sample in s2012 it worked but this source not work
http://answers.opencv.org/question/65... same problem I think
yes,same problem i examine configure vs 2012 tomorrow ,and i add comment result;thanks for replay