【问题标题】:Emgu: Setting up CUDA with C#Emgu:使用 C# 设置 CUDA
【发布时间】:2014-12-16 01:23:58
【问题描述】:

我正在构建一个应用程序,它使用 CPU 和 GPU 方法比较来自网络摄像头的 1,000、10,000 和 100,000 帧的计算集的时间尺度。

到目前为止,我已经编写了 CPU 实现,但现在我需要将我的 GPU 算法集成到我的项目中。

我在研究后选择了 Emgu,发现它允许使用 C# 支持 Open-CV 和 CUDA。但是我现在面临的问题是 VS2012 在我的程序中没有注意到我的 __global__ 调用。

以下是我正在使用的命名空间:

using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
using Emgu.CV.GPU;

using DirectShowLib;

我已成功链接到我认为所有适用的库,以使 CUDA 与 Emgu 一起工作:

考虑到这一点,我做错了什么?

【问题讨论】:

  • 我已经编辑了您的问题并删除了要求教程/场外资源的要求,因为这些会使您的问题偏离主题。作为一般指南,提出你的问题,展示你所做的,并给出你期望的结果。 See here on more about asking
  • 对不起鞋,我应该知道的更好。在凌晨 2 点写问题并不是最好的主意
  • 您有实际问题要描述吗?你还没有告诉我们问题是什么,所以很难告诉你出了什么问题......

标签: c# opencv cuda emgucv


【解决方案1】:

在我看来可能是 EMGU 的错误版本,我遇到的大多数 EMGU 问题都是由于版本错误造成的。

我必须使用 2.4.9 版本才能让 GPU 正常运行。

可以在以下链接下载:

http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-alpha/

我正在使用通过此下载找到的 2.4.9 版 DLL。

希望这会有所帮助!

祝你好运

编辑

可能有用的片段

using System.Threading;
using System.Threading.Tasks;

Parallel.For(0, facesDetected.Length, i =>
            {
                try
                {
                // Code in here
                }
                catch
                {
                }
            });

【讨论】:

  • 奇怪的是,这就是我正在使用的库......我真的不知道为什么这不起作用。
  • 啊,如果您使用的 EMGU 版本 2.4.9 可能会解释它。您在屏幕截图中的 DLL 是 2.9.0 版本,可能是 DLL 版本之间的冲突
  • 我是否链接到所有必需的库?如果是这样,我应该能够在主程序体中编写内核吗?还是有什么特殊的语法
  • 我认为您使用的是正确的库,但是对于并行运行 emgu,我没有使用普通的 CUDA 语法来调用内核(因为我认为这只是 C++?)我使用了以下 Parallel。 For(0, facesDetected.Length, i => { try { // 代码在这里 } Catch{} };
  • Np,祝考试顺利
猜你喜欢
  • 2021-08-30
  • 2016-11-10
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2020-07-06
  • 1970-01-01
  • 2017-12-24
相关资源
最近更新 更多