linux中SDL未定义的引用,当在C++中使用库时出现“未定义的引用”

newmain.cpp :(文本+ 0x35):未定义参考`CV :: CascadeClassifier ::负载(标准::字符串常量&)'

newmain.cpp :(.text + 0x5f):未定义引用`cv :: CascadeClassifier :: load(std :: string const &)'

newmain.cpp :(。text + 0x8e):未定义引用`cv :: VideoCapture :: open(int)'

newmain.cpp :(。text + 0x9d):未定义的引用`cv :: VideoCapture: :isOpened()const的 '

newmain.cpp :(文本+ 0x116):未定义参考`CV :: waitKey(int)的'

newmain.cpp :(文本+ 0x141):未定义参考为`CV :: VideoCapture ::阅读(CV ::垫&)”

(这样的例子不胜枚举,但所有相同类型的错误)

该代码应该检测图片中的脸部和眼睛。

的代码使用一些功能从opencv2,我已经安装:

#include "opencv2/objdetect/objdetect.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include

#include

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 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 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

imshow(window_name, frame);

}

感谢任何帮助,您可以给我!

+1

你所链接的OpenCV库? –

+0

链接器没有找到opencv –

+0

我没有收到任何错误的包含语句,如果这就是你的意思?但就像我说我对C++一无所知,所以如果我不得不做更多的事情,那我可能还没有做到... –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值