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
i use pre-built opencv and my program not have any error but it dosn't work! it warning cant find PDB file,its for debugging and not influence in execution program. for not have this warning i go tools>options>debugger>checked microsoft symbol server warning now not have but it dosent work?!