2016-07-25 5 views
2

を使用することができません、誰もが知っていて、私はNvidiaのグラフィックスカードは、それはCUDAは、特にGTX 660を有効にしている、と私はまた、CUDAドライバとツールキットがインストールされているインストールされています。しかし、 "HasCuda"関数を使用しようとすると、常にfalseが返されます。また、CUDAをチェックせずにプログラムをコンパイルしようとすると、エラーが出ます。だから誰もVisual Studio 2015でCUDAを使ってEmgucvを正しくインストールする方法についての指示を持っています。ところで、私はEmgucvをNugetパッケージから入手しました。Emgucv CUDAに

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Emgu.CV.Cuda; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public void CUDACheck() 
     { 
      if (CudaInvoke.HasCuda) 
      { 
       MessageBox.Show("CUDA On"); 
      } 
      else 
      { 
       MessageBox.Show("CUDA Off"); 
      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      CUDACheck(); 
     } 
    } 
} 

結果は常に「Cuda Off」です。

+0

コードはどこですか? –

答えて

1

私は、あなたがCUDAを有効にしてビルドされていないEmguのビルドを使用していると考えています。 CUDAを有効にしないビルドは、はるかに小さなパッケージであるため、より一般的に使用されます。私は自分自身でNuGetのパッケージを使用していましたが、これはCUDAを有効にしていないようです。 SourceForgeのhttps://sourceforge.net/projects/emgucvからダウンロードしなければならない、その名前に-cudaを含むビルドを使用していることを確認する必要があります。ファイルに移動し、必要なファイルを探します。ここからxxx_cuda_xxxと実行ファイルDownloade

+0

それは問題のようですが、私はcudaサポートでパッケージ全体を追加する必要があります。 –

0

Emgucv sourceforge executables。 nuGetパッケージマネージャからインストールしたものを削除します。ダウンロードしてインストールしたパッケージbinフォルダへの参照を追加します。手動でconcrt140.dllcvextern.dllmsvcp140.dllopencv_ffmepg330_64.dllvcruntime140.dllをデバッグまたはリリースフォルダーにコピーします。それでは、バージョンの互換性のある情報については、Emgucv Version Historyを参照してください。 nuGetパッケージマネージャーからダウンロードしたものがうまく動作しなかったのは、そのバージョンがGPUの計算をサポートしていなかったからです。