7

C#用のemgu CV open CVの使用を開始しようとしています。しかし、私はそれを機能させるのに問題があります。emgu CV Linkを使用して簡単なプログラムを作成するためにこのガイドに従っていますが、次のエラーが表示されます:(何が間違っているのか分かりますか?)

    System.TypeInitializationException was unhandled
      Message=The type initializer for 'Emgu.CV.CvInvoke' threw an exception.
      Source=Emgu.CV
      TypeName=Emgu.CV.CvInvoke
      StackTrace:
       at Emgu.CV.Image`2..ctor(String fileName) in c:\Emgu\emgucv-windows-x86-gpu 2.4.2.1777\Emgu.CV\Image.cs:line 144
       at TEST.Form1.button1_Click(Object sender, EventArgs e) in c:\documents and settings\laci\my documents\visual studio 2010\Projects\TEST\TEST\Form1.cs:line 28
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at TEST.Program.Main() in c:\documents and settings\laci\my documents\visual studio 2010\Projects\TEST\TEST\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.DllNotFoundException
       Message=Unable to load DLL 'opencv_core242': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
       Source=Emgu.CV
       TypeName=""
       StackTrace:
            at Emgu.CV.CvInvoke.cvRedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
            at Emgu.CV.CvInvoke..cctor() in c:\Emgu\emgucv-windows-x86-gpu 2.4.2.1777\Emgu.CV\PInvoke\CvInvoke.cs:line 166
       InnerException: 
4

7 に答える 7

9

Emgu.CV は単なる .NET ラッパーであるため ( http://en.wikipedia.org/wiki/Wrapper_libraryを参照)、アプリケーションの出力ディレクトリに OpenCV のネイティブ .DLL ファイルを配置する必要があります。

必要なファイルは、http: //sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.2/OpenCV-2.4.2.exe/download で対応するバージョンの OpenCV をダウンロードすることで見つけることができます。

于 2012-12-14T09:10:02.627 に答える
1

Dependency Walker -> http://www.dependencywalker.com/ on "opencv_core242.dll" を使用して不足している DLL を見つけることで、この問題を解決できる場合があります。

私にとっては、ここにスレッドとして tbb.dll がなかったことがわかりますtbb.dll が見つかりません

https://www.threadingbuildingblocks.org/からダウンロードして、tbb*.dll を作業ディレクトリまたは「System32」にコピーするだけで問題ありません。

于 2014-03-04T18:51:54.430 に答える
0

http://www.dependencywalker.com/から依存関係ウォーカーをダウンロードし、読み込まれないと主張する .dll を開きます。次に、依存関係を探します。システム フォルダー (system32 または syswow64) のアプリのディレクトリに 1 つ以上がない場合は、そこにある必要があります。

于 2014-04-28T06:06:23.027 に答える
0

エラーの状態とまったく同じです - アプリケーションの作業ディレクトリにネイティブ DLL が見つかりません。opencv_core242.dll ライブラリがアプリケーションの出力ディレクトリと作業ディレクトリにコピーされていることを確認してください。

于 2012-12-14T09:07:08.000 に答える