19

このエラーが発生しています

「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;
}

何が間違っている可能性があり、これをさらにデバッグするにはどうすればよいですか? ありがとう!

4

11 に答える 11

16

私も同じ問題を抱えていました。私の内部例外は「DLL 'opencv_core290' をロードできません」でした。

x86 および x64 フォルダーを「yourEmguFolder/bin」からプロジェクトの output(bin) ディレクトリにコピーする必要があります。次に、プロジェクトを再度ビルドして実行します。

emguウィキによると

于 2014-11-03T10:15:48.980 に答える
2

まず、プロジェクトに 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 をコピーして、それを Your Project/bin/debug/ フォルダーに貼り付けます。プロジェクトを再構築するよりも。それよりもうまく動作します。

頑張ってください!!!!

于 2014-12-16T13:29:08.770 に答える
2

依存関係の dll をプロジェクトに追加し、Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\x86 から「 copy to output directory 」プロパティを「copy always」(追加 -> 既存の項目) に変更する必要があります。

私のプロジェクトに次を追加します

于 2014-08-18T12:03:49.520 に答える
2

c#、VS 2017、emgu バージョン 3.2.0.2682 でこれを見つけました

AnyCPU で単純なビルドを試みたところ、不適切なフォーマットの例外が発生しました。そのため、コメントに提案がある可能性があるため、x86の不正な形式の例外を試しました。最後に、x64 として配置したところ、問題なく動作しました。

于 2017-07-15T19:28:03.593 に答える
0

私にとって、Visual Studioをクリックすることで問題は解決しました:

メニュー -> プロジェクト -> プロパティ -> ビルド -> 32 ビットを優先。

emgu (おそらく x86) と私の OS x64 に問題があったに違いありません)。

于 2016-10-12T20:41:42.523 に答える