「Emgu.CV.CvInvoke」の型初代化器は例外を投げました。 この例外を見た場合は、以下の点を確認してください
MSVCRTをインストールしましたか? バージョン2.0+では、バンドルされているOpenCV 2.0バイナリがVisual Studio 2008で構築されており、依存関係の問題を解決するにはMSVCRT 9.0 SP1をインストールする必要があります。 バージョン1.5では、バンドルされているOpenCVのpre1.1バイナリはVisual Studio 2005で構築されており、依存関係の問題を解決するにはMSVCRT 8.0 SP1をインストールする必要があります。 OpenCVのdllを実行ディレクトリにコピーしましたか? 管理されていないDLLが実行ディレクトリにあることを確認してください。 Emgu CVバージョン<= 2.1の場合、これは以下のdllsを意味します:cvXXX.dll、cvauxXXX.dll、cxcoreXXX.dll、highguiXXX.dll、opencv_ffmpegXXX.dll、mlXXX.dll andcvextern.dll ここでXXXはOpenCVです バージョン番号。 Emgu CVバージョン>= 2.2の場合、これは以下のdllsを意味します:opencv_calib3dXXX.dll、opencv_contribXXX.dll、opencv_coreXXX.dll、opencv_features2dXXX.dll、opencv_highguiXXX.dll、opencv_ imgprocXXX.dll、opencv_legacyXXX.dll,opencv_mlXXX.dll、opencv_objectdetectXXX.dll,opencv_videoXXX.dll ここでXXXはOpenCVバージョン番号です。 プロジェクトの最適な立ち上がり方法は以下の通りです: 管理されていないDLLをプロジェクトフォルダにコピーしてください プロジェクトを右クリックし、「Add->ExistingItem」をクリックして、すべての管理されていないDLLを選択します。それらをプロジェクトに追加します。 付属の各DLLについて、左クリックして「Copyto Output Directory」オプションを見つけて「Copy if newer」を選択してください。 32ビットOSを使っていますか? Windowsインストーラーは32ビットWindows専用です。 64ビットOSを使用している場合、この問題を解決する方法は3つ考えられます。
sourceforgeから64ビットバイナリのみのzipパッケージをダウンロードして、プロジェクトに追加できます。 OpenCVは64ビットプラットフォーム向けにソースから再コンパイルすることも可能です。 fromSVNのビルド手順を参照してください あるいは、64ビットOSでも.NETアプリケーションを32ビットモードで強制的に動作させる方法もあります。 これを行うには、実行可能プロジェクトの設定ページでPlatform Targetを'x86'として選択します。 依存関係が足りないのですか? Dependency Walkerをダウンロードして「cvextern.dll」ファイルを開きます。 依存関係がないか確認してください。
上記のすべてを確認しましたが、それでも例外が出ています この場合、ぜひ例を作成して実行してください。 例を作成したら、「Hello World」プログラムを実行してみてください。
「Hello World」が問題なく動作するなら、YouProjectと比較して設定の違いを見つけて修正してください。
「Hello World」が同じ「Emguのタイプ初期化器」を得た場合、 「例外を投げた」というメッセージを送り、InnerExceptionを探してディスカッションフォーラムに報告してください
EMGUのタイプ初期化。 CV。 cvinvokeは例外を設けます。 この例外を見た場合は、以下の点を確認してください msvcrtをインストールしましたか? バージョン2+、バンドルされたopencv 2バイナリはVisual Studio 2008をビルドするためのもので、依存関係の問題を解決するためにedmsvcrt 9 SP1をインストールする必要があります。 バージョン1.5、同梱のOpenCVプリ1.1バイナリビルドVisual Studio 2005では、依存関係の問題を解決するためにedmsvcrt 8 SP1をインストールする必要があります。 コピーしたopencv DLL実行ディレクトリですか? 管理されていないDLLが実行ディレクトリにあることを確認してください。 emgu CVバージョンでは< = 2.1で、これは次の DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx を意味します。 DLL、highguixxx.dll、opencv_ffmpegxxx.dll、mlxxx.dll andcvextern.dll xxxはopencvのバージョン番号です。 EMGU CVバージョンの場合> = 2.2 これは次のDLL:opencv_calib3dxxx.dllがopencv_contribxxxことを意味します。 DLL,opencv_corexxx.dll,opencv_features2dxxx。 DLL,opencv_highguixxx.dll,opencv_imgprocxxx.dll,opencv_legacyxxx。 DLL,opencv_mlxxx.dll,opencv_objectdetectxxx。 DLL、opencv_videoxxx.dll XXXはopencvversion番号です。 プロジェクトを構築する最良の方法は以下の通りです: 管理されていないDLLがプロジェクトフォルダにコピーされました プロジェクトを右クリックして「Add-> existingitem」をクリックすると、すべての管理されていないDLLを選択します。 プロジェクトに加えましょう。 含まれる各DLLについて、左クリックして「コピー&出力ディレクトリ」オプションを探し、「更新されたらコピーする」を選択します。 32ビットのオペレーティングシステムを使っていますか? Windowsインストーラーは32ビットWindowsのみを提供できます。 64ビットOSを使用している場合、この問題を解決する3つの方法があります。 sourceforgeから64ビットのバイナリのみのzipパッケージをダウンロードしてプロジェクトに追加できます。 また、64ビットプラットフォームからOpenCVソースをコンパイルすることも可能です。 建設fromsvn指令を参照してください あるいは自分のものを強制することもできます。 .NETアプリケーションは64ビットOSでも32ビットモードで動作します。 これを行うには、実行プロジェクトの設定ページでプラットフォームターゲットを'x86"として選択します。 何か依存関係を見落としていますか? Dependent Walkerをダウンロードして「cvextern DLLファイル」を開きます。 ”。 依存関係が抜けていないか確認してください。 上記はすべて確認しましたが、まだ例外があります この場合、インスタンスを構築して実行してみてください。 インスタンスを構築した後、Hello Worldプログラムを実行してみてください。 Hello Worldが問題なく動作すれば、youprojectと比較し、構造的な違いを見つけて解決します。 「hello world」が同じ「初期値設定子のtype'emgu」を受け取った場合、 CV。 「cvinvoke」は例外を提示します。 フォーラムの内側の例外を探しているメッセージ
|