无法在opencv visual studio 2012

时间:2015-05-25 17:25:38

标签: c++ opencv

我正在使用visual studio 2012并运行opencv2.4.9

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/objdetect/objdetect.hpp>

cv::CascadeClassifier face_cascade;
cv::CascadeClassifier eye_cascade;

/**
* Function to detect human face and the eyes from an image.
*
* @param  im    The source image
* @param  tpl   Will be filled with the eye template, if detection success.
* @param  rect  Will be filled with the bounding box of the eye
* @return zero=failed, nonzero=success
*/
int detectEye(cv::Mat& im, cv::Mat& tpl, cv::Rect& rect)  
{
std::vector<cv::Rect> faces, eyes;
face_cascade.detectMultiScale(im, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE,       
cv::Size(30,30));
for (int i = 0; i < faces.size(); i++)
{
cv::Mat face = im(faces[i]);
eye_cascade.detectMultiScale(face, eyes, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE,   
cv::Size(20,20));
if (eyes.size())
{
rect = eyes[0] + cv::Point(faces[i].x, faces[i].y);
tpl  = im(rect);
}
}

return eyes.size();
}

/**
* Perform template matching to search the user's eye in the given image.
*
* @param   im    The source image
* @param   tpl   The eye template
* @param   rect  The eye bounding box, will be updated with the new location                                                      
of the eye
*/
void trackEye(cv::Mat& im, cv::Mat& tpl, cv::Rect& rect)
{
cv::Size size(rect.width * 2, rect.height * 2);
cv::Rect window(rect + size - cv::Point(size.width/2, size.height/2));

window &= cv::Rect(0, 0, im.cols, im.rows);

cv::Mat dst(window.width - tpl.rows + 1, window.height - tpl.cols + 1, 
CV_32FC1);
cv::matchTemplate(im(window), tpl, dst, CV_TM_SQDIFF_NORMED);

double minval, maxval;
cv::Point minloc, maxloc;
cv::minMaxLoc(dst, &minval, &maxval, &minloc, &maxloc);

if (minval <= 0.2)
{
    rect.x = window.x + minloc.x;
    rect.y = window.y + minloc.y;
}
else
    rect.x = rect.y = rect.width = rect.height = 0;
}

int main(int argc, char** argv)
{
// Load the cascade classifiers

face_cascade.load("C:/ashish2/data/haarcascades/haarcascade_frontalface_alt2    .xml");
eye_cascade.load("C:/ashish2/data/haarcascades/haarcascade_eye.xml");

// Open webcam
cv::VideoCapture cap(0);

// Check if everything is ok
if (face_cascade.empty() || eye_cascade.empty() || !cap.isOpened())
    return 1;

// Set video to 320x240
cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 240);

cv::Mat frame, eye_tpl;
cv::Rect eye_bb;

while (cv::waitKey(15) != 'q')
{
cap >> frame;
if (frame.empty())
break;

// Flip the frame horizontally, Windows users might need this
cv::flip(frame, frame, 1);

// Convert to grayscale and 
// adjust the image contrast using histogram equalization
cv::Mat gray;
cv::cvtColor(frame, gray, CV_BGR2GRAY);

if (eye_bb.width == 0 && eye_bb.height == 0)
{
// Detection stage
// Try to detect the face and the eye of the user
detectEye(gray, eye_tpl, eye_bb);
}
else
{
// Tracking stage with template matching
trackEye(gray, eye_tpl, eye_bb);

// Draw bounding rectangle for the eye
cv::rectangle(frame, eye_bb, CV_RGB(0,255,0));
}

// Display video
cv::imshow("video", frame);
}

return 0;
}

当我在代码下面运行时它会给我&#39; test2.exe&#39; (Win32):已加载&#39; C:\ Users \ Orayan \ Documents \ Visual Studio 2012 \ Projects \ test2 \ Debug \ test2.exe&#39;。符号已加载。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ntdll.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ kernel32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ KernelBase.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Users \ Orayan \ Documents \ Visual Studio 2012 \ Projects \ test2 \ Debug \ opencv_core249.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvcp110.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvcr110.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Users \ Orayan \ Documents \ Visual Studio 2012 \ Projects \ test2 \ Debug \ opencv_highgui249.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ user32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ gdi32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ lpk.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ usp10.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvcrt.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ advapi32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ sechost.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ rpcrt4.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ sspicli.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ cryptbase.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ole32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ oleaut32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ comctl32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvfw32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ winmm.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ shell32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ shlwapi.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ avifil32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msacm32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ avicap32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ version.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Users \ Orayan \ Documents \ Visual Studio 2012 \ Projects \ test2 \ Debug \ opencv_imgproc249.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Users \ Orayan \ Documents \ Visual Studio 2012 \ Projects \ test2 \ Debug \ opencv_objdetect249.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvcp110d.dll&#39;。符号已加载。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msvcr110d.dll&#39;。符号已加载。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ imm32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msctf.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ uxtheme.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ clbcatq.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ devenum.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ setupapi.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ cfgmgr32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ devobj.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ntmarta.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ Wldap32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ wintrust.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ crypt32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msasn1.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msdmo.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ qcap.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ quartz.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ dwmapi.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ksproxy.ax&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ksuser.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ d3d9.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ d3d8thk.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ vidcap.ax&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ Kswdmcap.ax&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ mfc42.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ odbc32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ odbcint.dll&#39;。模块没有符号。 线程0x1564已退出,代码为0(0x0)。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ qedit.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ comdlg32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ winsxs \ x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca \ GdiPlus.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ ddraw.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ dciman32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ igdumdx32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ igdumd32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ powrprof.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ d3dim700.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ igdumd32.dll&#39; &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ powrprof.dll&#39; &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ igdumdx32.dll&#39; &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ igdumdx32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ igdumd32.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ powrprof.dll&#39;。无法找到或打开PDB文件。 &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ igdumd32.dll&#39; &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ powrprof.dll&#39; &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ igdumdx32.dll&#39; &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ xmp4_dshow.dll&#39;。模块没有符号。 &#39; test2.exe&#39; (Win32):已加载&#39; C:\ Windows \ SysWOW64 \ msyuv.dll&#39;。无法找到或打开PDB文件。 线程0x9cc已退出,代码为0(0x0)。 &#39; test2.exe&#39; (Win32):已卸载&#39; C:\ Windows \ SysWOW64 \ msyuv.dll&#39; 线程0x166c已退出,代码为0(0x0)。 线程0x4b0已退出代码1(0x1)。 程序&#39; [5944] test2.exe&#39;已退出代码1(0x1)。 :

即使我手动复制了opencv_highgui249.dll,opencv_core249.dll,也在这个文件的属性中我已经提供了所有的路径。

0 个答案:

没有答案