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

2023-12-11

当运行我在互联网上找到的一些代码时,我遇到了以下问题http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html: newmain.cpp:(.text+0x17): 对 `cv::VideoCapture::VideoCapture()' 的未定义引用

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

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:(.text+0x116): 对 `cv::waitKey(int)' 的未定义引用

newmain.cpp:(.text+0x141): 对 `cv::VideoCapture::read(cv::Mat&)' 的未定义引用

(这个列表还在继续,但都是相同类型的错误)

该代码应该从图片中检测面部和眼睛。

该代码使用了我已经安装的 opencv2 中的一些函数:

    #include "opencv2/objdetect/objdetect.hpp"
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/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
        imshow( window_name, frame );
    }

感谢你给与我的帮助!


看起来,您没有链接到任何 opencv 库。

gcc objDetection.cpp -o objDetection -lopencv_core -lopencv_imgproc -lopencv_objdetect -lopencv_highgui

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C++ 中使用库时出现“未定义的引用” 的相关文章

随机推荐

  • Pebble 手表开发教程中的这个点语法是什么意思? [复制]

    这个问题在这里已经有答案了 我在 Pebble 手表应用程序开发教程中遇到了以下代码 Set handlers to manage the elements inside the Window window set window handl
  • 我可以检测窗口是否部分隐藏吗?

    是否可以检测我的外部程序的窗口是否 1 完全可见 2 部分隐藏或 3 完全隐藏 如果窗口 基于检索到的句柄 不可见 我希望能够告诉我的应用程序不要执行任何操作 我不关心窗口是否有焦点 z 顺序是什么 或者其他什么 我只关心窗口显示了多少 如
  • 使用 Amazon API MWS 进行签名查询

    我正在尝试向卖家亚马逊网络服务 MWS 提出签名请求 我正在使用这里的脚本 将亚马逊 MWS 暂存器查询转换为 API 调用 但我不知道为什么会出现错误 我们计算的请求签名与您提供的签名不匹配 请检查您的 AWS 秘密访问密钥和签名方法 有
  • 在运行时实现接口

    是否可以使已编译的类在运行时实现某个接口 例如 public interface ISomeInterface void SomeMethod public class MyClass this is the class which i w
  • pySerial write() 在 Python 解释器中工作正常,但在 Python 脚本中不行

    最近 我正在尝试在Arduino上进行某种 灯光控制 我使用 Raspberry Pi 通过串口 USB 电缆 发送控制消息 这是 Arduino 代码 int redled 12 int whiteled 48 void setup Se
  • R - 如果日期在范围内,则求和

    我已经设法在 excel 中轻松完成此操作 但想在 R 中完成此操作 我有两个数据框 MediaPlanDF 215 个 obs 29 个 var 我只关心其中的 4 个变量 开始日期 航班日期 结束日期 航班日期 每日消费 每日展示次数
  • 如何修复 Findbugs HTTP 参数直接写入 HTTP 标头输出

    我有一个类 RequestFilter 和 Override 方法 doFilterInternal 当我添加响应标头时 findbugs 显示直接写入 HTTP 标头输出的错误 HTTP 参数 那么我该如何解决这个问题呢 谢谢大家 Str
  • sql 如何将两个表的三个查询合并为一个查询

    我有以下两个表 Table1 id name A3 B2 A3 B400 A5 B100 A7 B200 A8 B6 A8 B2 A8 B3 and Table2 id name company A1 company1 A2 company
  • Jquery基于滚动翻译元素

    我正在尝试重现发现的效果这一页 所以我们的想法是 当用户滚动时 选项卡就会显示出来 我对此的看法是使用 jquery 沿着滚动条翻译它们 我的问题是 我给了他们特定的滚动区域 在此期间它们将被翻译 但如果滚动 跳 出该区域 它们将保持在原来
  • 如何在 iOS 7 的 UIAlertView 中添加子视图?

    我在 iTunes 商店中有一个应用程序 它显示一些UILabel and UIWebView on UIAlertView 根据会议视频显示 addSubView for UIAlertView不管用 他们谈论过ContentView 但
  • PHP:通过 ClassName::method 语法调用实例方法,会导致静态调用吗?

    她是我的代码 class MyClass public prop public function method echo this gt prop 然后在代码中的某个地方 意外地 MyClass method 我预计上面的行会出现解释错误
  • IsPersistent 不起作用 PasswordSignInAsync Identity asp.net core

    我在我的网站中使用 dotnet core 5 和 Identity 进行授权 我有一个自定义课程User为了我的身份 这是我的配置服务 services AddDbContext
  • 使用 Parse iOS 登录 Facebook 和 Twitter 只能运行一次

    我在 Parse SDK 中使用 twitter 和 Facebook 登录 对于每个应用程序启动 我都可以登录每个服务一次 但是当我使用 PFUser logOut 注销时 我无法再次登录 PFFacebookUtils logInWit
  • C# 使 winform readonly radioButton 看起来像标准的

    简单的问题 如果我在 winform 项目中设置一个单选按钮 它的外观 字体颜色 将更改为浅灰色 当我将其启用属性设置为 false 时也是如此 我怎样才能创建一个看起来像普通按钮的只读单选按钮 因为这样你几乎看不到它 Thanks 作为一
  • 如何使用自定义引导程序执行 Wix 升级

    我想在我们的 WiX 自定义 BA 安装程序的第二版中启用升级 在我的Product wxs中 产品ID设置为 版本设置为2 0 0 升级代码与第一个版本相同 为了检测升级 我在 Boostrapper 中使用了 DetectRelated
  • Angular - 在所有 HTTP 重试失败后捕获错误

    我正在使用 Angular 服务从我的API 我实现了重试功能 以防获取数据失败 现在 当所有重试都耗尽时 我需要处理错误 但我无法捕获它 以下是我的代码 public getInfoAPI category string id strin
  • 调用相机应用程序重新创建 Android 活动

    我正在开发一个使用 ActivityGroup 实现的选项卡式活动 当我调用相机应用程序并返回时 它总是在调用onCreate 并重新创建活动 因此回调活动结果有空数据 我将其添加到清单文件中 但没有变化 android screenOri
  • 在 iOS 应用程序中添加 Admob 时生成错误

    我在这里尝试了很多源代码和很多问题 但没有解决方案适合我 当我尝试将 admob 添加到现有项目时 我在 Xcode 中收到以下错误 请查看屏幕截图 我拥有所有框架 例如商店套件等 请参阅第二个屏幕截图 我已添加 iAd 网络 没有任何问题
  • Emacs -- 如何用 let 绑定变量替换列表的第 n 个元素

    我还没有找到任何关于如何做的例子replace the nth列表元素 无需先添加每个元素 一对一 与函数add to ordered list 例如 add to ordered list the list a 1 这需要随后删除该元素
  • 在 C++ 中使用库时出现“未定义的引用”

    当运行我在互联网上找到的一些代码时 我遇到了以下问题http docs opencv org doc tutorials objdetect cascade classifier cascade classifier html newmai