このエラーが発生しています
'Emgu.CV.CvInvoke'のタイプ初期化子が例外をスローしました。
emgu CVを使用しようとしたとき。私はこれを修正するために考えられるすべてのものを試しましたが、それでも同じエラーが発生し、ボタンをクリックすると表示されます
オブジェクト参照がオブジェクトインスタンスに設定されていません。
これは私が試しているコードです:
void ProcessFunction(object sender, EventArgs e)
{
imgOrg = capturecam.QueryFrame();
if (imgOrg == null) return;
imgProc = imgOrg.InRange(new Bgr(50, 50, 50), new Bgr(255, 255, 255));
imgProc = imgProc.SmoothGaussian(9);
imageBox1.Image = imgOrg;
imageBox2.Image = imgProc;
}
私は何を間違っていたのでしょうか?これをさらにデバッグするにはどうすればよいですか?ありがとう!
私も同じ問題を抱えていました。私の内部の例外は「DLL 'opencv_core290'」をロードできません」でした。
「yourEmguFolder/bin」からプロジェクトのoutput(bin)ディレクトリにx86およびx64フォルダーをコピーする必要があります。次に、プロジェクトを再度ビルドして実行します。
emgu wiki によると
アンマネージDLL=依存関係の読み込みに失敗している可能性があります。いくつかの提案:
EMGUインストールのbinフォルダーにあるすべての管理されていないdllをコピーして、exeファイルがある場所(プロジェクトフォルダーのリリースまたはデバッグフォルダー)に貼り付けます。
私の場合、管理されていないdllは「C:\ Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86」にあります
最初に、プロジェクトに3つのライブラリを追加する必要があります。 opencv_core290.dll、opencv_highgui290.dll、opencv_imgproc290.dll。ここでは290はあなたのopencvバージョンを指します。その後、プロパティを「コピーしない」から「常にコピーする」に変更します。プロジェクトを保存するよりも。その後、次の場所に行きます。マシンが64ビットの場合は、次のフォルダー「C:\ Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x64」に移動するか、32ビットOSを使用する場合は「C:\ Emgu\emgucv- windows-universal-cuda 2.9.0.1922\bin\x86 "およびそのフォルダー内のすべてのdllをコピーして、Project/bin/debug /フォルダーに貼り付けます。プロジェクトを再構築するよりも。それよりもうまくいきます。
幸運を祈ります!!!!
依存関係DLLをプロジェクトに追加し、「出力ディレクトリにコピー」プロパティをEmgu\emgucv-windows-universal-cuda 2.9.0.1922\binから「常にコピー」(追加->既存の項目)に変更する必要があります\ x86
私のプロジェクトに追加:opencv_core290.dll、opencv_highgui290.dll、opencv_ffmpeg290.dll、opencv_imageproc290.dllおよびcudart32_55.dll
32ビットマシンでも同じ問題が3日間発生しました。すべてのdllをbinおよびx86フォルダーからsystem32フォルダーにコピーするだけでこれを解決しました。他のdllに依存するdllがあり、それをすべて転送した瞬間に機能するようです。どれを探すか時間がありませんでした。
これはc#、VS 2017、emguバージョン3.2.0.2682で見つかりました
AnyCPUで単純なビルドを試行し、不正なフォーマット例外を受け取りました。コメントで提案の可能性があるため、x86の不正なフォーマット例外を試しました。最後に、私はそれをx64として置き、それはうまくいきました。
私にとっては、Visual Studioをクリックして問題を解決しました:
メニュー->プロジェクト->プロパティ->ビルド-> 32ビット優先。
Emgu(おそらくx86)と私のOS x64)の問題だったに違いありません。
LD_LIBRARY_PATH
を使用して解決できます:
警告を開いて、プログラムにないlibを確認します
パスを見つける
$ Locate#はライブラリパスを検索します
IDEで、環境変数LD_LIBRARY_PATH
をlibパスに設定します(私はmonodevelopを使用しています。パスはRun-> Run With-> Custom Parameters ...です)。
それは今すぐうまくいきます:)
Windows Serverで機能しない場合は、UIデスクトップエクスペリエンスを有効にする必要があります。