OpenCV - cudaimgproc 错误

2023-12-03

我对 OpenCV 还很陌生,我想为一个项目实现 houghlines。我从 OpenCV 文档中提取了 houghlines.cpp。当我运行源文件时,我似乎收到错误。我在 Visual Studios 15 上运行它并使用 OpenCV 3.1。我对 Cuda 不太了解,而且刚刚进入 OpenCV 的世界,所以我确实需要更彻底的指导。谢谢。

#include <cmath>
#include <iostream>
#include "opencv2/core.hpp"
#include <opencv2/core/utility.hpp>
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/cudaimgproc.hpp"
using namespace std;
using namespace cv;
using namespace cv::cuda;
static void help()
{
    cout << "This program demonstrates line finding with the Hough transform." << endl;
    cout << "Usage:" << endl;
    cout << "./gpu-example-houghlines <image_name>, Default is ../data/pic1.png\n" << endl;
}
int main(int argc, const char* argv[])
{
    const string filename = argc >= 2 ? argv[1] : "../data/pic1.png";
    Mat src = imread(filename, IMREAD_GRAYSCALE);
    if (src.empty())
    {
        help();
        cout << "can not open " << filename << endl;
        return -1;
    }
    Mat mask;
    cv::Canny(src, mask, 100, 200, 3);
    Mat dst_cpu;
    cv::cvtColor(mask, dst_cpu, COLOR_GRAY2BGR);
    Mat dst_gpu = dst_cpu.clone();
    vector<Vec4i> lines_cpu;
    {
        const int64 start = getTickCount();
        cv::HoughLinesP(mask, lines_cpu, 1, CV_PI / 180, 50, 60, 5);
        const double timeSec = (getTickCount() - start) / getTickFrequency();
        cout << "CPU Time : " << timeSec * 1000 << " ms" << endl;
        cout << "CPU Found : " << lines_cpu.size() << endl;
    }
    for (size_t i = 0; i < lines_cpu.size(); ++i)
    {
        Vec4i l = lines_cpu[i];
        line(dst_cpu, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255), 3, LINE_AA);
    }
    GpuMat d_src(mask);
    GpuMat d_lines;
    {
        const int64 start = getTickCount();
        Ptr<cuda::HoughSegmentDetector> hough = cuda::createHoughSegmentDetector(1.0f, (float)(CV_PI / 180.0f), 50, 5);
        hough->detect(d_src, d_lines);
        const double timeSec = (getTickCount() - start) / getTickFrequency();
        cout << "GPU Time : " << timeSec * 1000 << " ms" << endl;
        cout << "GPU Found : " << d_lines.cols << endl;
    }
    vector<Vec4i> lines_gpu;
    if (!d_lines.empty())
    {
        lines_gpu.resize(d_lines.cols);
        Mat h_lines(1, d_lines.cols, CV_32SC4, &lines_gpu[0]);
        d_lines.download(h_lines);
    }
    for (size_t i = 0; i < lines_gpu.size(); ++i)
    {
        Vec4i l = lines_gpu[i];
        line(dst_gpu, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(0, 0, 255), 3, LINE_AA);
    }
    imshow("source", src);
    imshow("detected lines [CPU]", dst_cpu);
    imshow("detected lines [GPU]", dst_gpu);
    waitKey();
    return 0;
}

错误LNK2019

无法解析的外部符号“struct cv::Ptr __cdecl cv::cuda::createHoughSegmentDetector(float,float,int,int,int)”(?createHoughSegmentDetector@cuda@cv@@YA?AU?$Ptr@VHoughSegmentDetector@cuda@cv @@@2@MMHHH@Z) 在 main 函数中引用


编译时必须链接附加库。

在 Windows 中,库名称是opencv_cudaimgproc310.lib。如果使用 Visual Studio,则必须在 [配置属性] -> [链接器] -> [输入] -> [其他依赖项] 中添加库名称。

在Linux中,通常是libopencv_cudaimgproc.so,这是一个符号链接libopencv_cudaimgproc.so.3.1,这又是一个符号链接libopencv_cudaimgproc.so.3.1.0,这是实际的库。如果一个人正在使用g++, -lopencv_cudaimgproc必须添加到g++命令。

我假设在这两种环境中,库搜索路径都设置正确,也就是说,它包含 OpenCV 库的路径。

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

OpenCV - cudaimgproc 错误 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • 即使没有异步,CallContext.LogicalGetData 也会恢复。为什么?

    我注意到CallContext LogicalSetData LogicalGetData不按照我期望的方式工作 内部设置的值async方法得到恢复即使没有异步或任何类型的线程切换 无论如何 这是一个简单的例子 using System u
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 将预编译的二进制文件捆绑到电子应用程序中

    关于如何将第三方预编译的二进制文件 例如 imagemagick 包含到电子应用程序中 是否有一个好的解决方案 有 Node js 模块 但它们都是包装器或本机绑定到系统范围内安装的库 我想知道是否可以在发行版中捆绑预编译的二进制文件 这是
  • HTML / JAVASCRIPT :在 contentEditable=true 中禁用 HTML 内容

    我想要的是 我想要一个像 a 一样工作的 divtextarea 我不希望能够在 div 中编辑内容 并粘贴图像等纯文本 Example www facebook com 最好的example is 脸书的新闻 feed 为什么我需要这种方
  • LINQ to Entities 字符串转小数列

    这个问题我研究得死去活来 每个人和他们的兄弟都想知道如何将 int 或decimal 转换为字符串 但我找不到任何使用 EF 执行相反操作的示例 我的数据源在数据库中有一个 varchar 类型的订单total amt 列 原因是源数据被加
  • 我的日食今天停止工作了

    今天我遇到了 Eclipse 的问题 就像每次我关闭一个项目时都会弹出一个窗口 上面写着 保存工作空间时出错 并抱怨 apache xerces 我决定下载全新安装 但现在它甚至无法启动 我尝试了许多变体 经典 javase c 希望存在一
  • 为什么我的列表中的所有元素似乎都是相同的?

    我有以下代码 Integer lastExchange new Integer nColors Integer newExchange new Integer nColors while true for int i 0 i
  • 调用该函数,该函数存储在字符串变量中

    它可能是重复的 如何在 NET中动态调用类的方法 and of 如何实现动态调用函数 没错 调用的函数是由数据库值决定的 使用c 但上述两个解决方案正如答案所说很复杂 我想不适合初学者 and 两种解决方案都包含 类型 从代码中我认为它是用
  • 通过批处理文件或 vba 将 .xls 转换为 .xlsm 的方法?

    如何自动将 xls 工作簿转换为 xlsm 你可以试试这个代码 Sub TrandformAllXLSFilesToXLSM Dim myPath As String myPath C Excel WorkFile Dir myPath x
  • pygame和精灵模糊运动

    我正在努力正确移动精灵 我看到的不是平滑移动 而是模糊移动 但我不知道如何解决它 你有机会指出我做错了什么吗 我的目标是让披萨落下 使其击中底部并弹回 如果击中顶部则弹回 然后再次弹起底部 gt 弹起 gt 顶部 gt 弹起等等 impor
  • (.1f+.2f==.3f) != (.1f+.2f).Equals(.3f) 为什么?

    我的问题是not关于浮动精度 这是关于为什么Equals 不同于 我明白为什么 1f 2f 3f is false while 1m 2m 3m is true 我明白了 是参考和 Equals 是价值比较 Edit 我知道还有更多 但为什
  • 为什么 $http.get 返回 304 错误

    我是 Angular 的新手 在使用一直有效的服务时遇到了麻烦 直到它不起作用 我的服务有以下调用 this getForms function return http get forms then function response re
  • 如何基于一个数据集从 RMarkdown 生成多个 HTML 文件?

    我有一个非常有用的 RMarkdown 报告 并且已经增长到几页长 其中包含 HTML 文件中的所有图形和表格 它对所有图形和表格使用相同的数据集 我想做的是继续生成这个大的 html 文件 然后生成几个新的子目录 每个子目录都有自己的 h
  • jqplot 仪表问题:c.jqplot 未定义?

    有人经历过这个吗 我对此很陌生 所以我不确定这里到底发生了什么 但我试图根据文档使用 jqplot 的仪表 但它似乎不起作用 我可以很好地创建条形图 折线图等图表 包括必要的脚本链接 以及其他需要的链接 markup div div js
  • 读取二进制输入时出现 UnicodeDecodeError

    我尝试将我的代码从 python 2 7 移植到 3 4 在2 7下它工作得很好 我将导入一个 Picscope 二进制文件并在 Python 3 4 ubuntu 下得到以下错误 in import CS data A bin file
  • 如何让普通的 Mixamo 角色动画在 SceneKit 中工作?

    前往 mixamo com 选择一个角色 点击动画 选择一个 简单地下载为 dae 将文件放在 Mac 桌面上 点击文件信息 它会完美的动画角色移动 Xcode 拖入文件夹 点击 dae 文件 点击底部的 播放 图标 它会完美的动画角色移动
  • Socket.IO 客户端库给出“欢迎来到 socket.io”消息

    一段时间后 我再次尝试使用node js和socket IO 但它没有按预期工作 My setup 从github下载node js并在我的上编译它外部网络服务器运行在 Debian scrape 上 为node js项目创建了一个目录 使
  • 我们如何在从 android spinner 选择的项目上传递与我们在 spinner 中选择的文本不同的值? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我创建了一个显示世界上所有国家 地区名称的旋转器 现在 我想传递一个值 例如阿富汗的 AFG 意大利的 ITA 等 以便在从微调器中选择项目时将其存储为字符串 我对如何做到这一点
  • 解释 R 中的 for 循环

    我对 R 非常陌生 对 R 编程更陌生 我有以下问题及其答案 不是我的 我试图理解为什么某些值 从哪里获得它们 为什么使用它们等等 问题 用 for 循环生成向量 3 5 7 9 11 13 15 17 开始 x numeric 并用 fo
  • HTML 脚本标签和非 JS 内容 - Firefox

    看来此代码将在 Chrome 和 IE 中请求该文件 但不会在 Firefox 中请求该文件 是否有一些规范规定浏览器应该只处理与 JavaScript 相关的 mime 类型 我知道 IE 可能支持这个 因为 vbscript 的历史 一
  • 如何读出javascript中的前4个字节,将其转换为整数并删除其余部分?

    我需要通过互联网将网络摄像头数据从一个浏览器传输到另一个浏览器 网络摄像头显示在HTML5 canvas 然后我获取它的dataUrl 并将其变成blob 然后我将这个 blob 发送到我的服务器 据我了解 斑点本质上是byte array
  • OpenCV - cudaimgproc 错误

    我对 OpenCV 还很陌生 我想为一个项目实现 houghlines 我从 OpenCV 文档中提取了 houghlines cpp 当我运行源文件时 我似乎收到错误 我在 Visual Studios 15 上运行它并使用 OpenCV