質問: cv::cudacodec::createVideoReader(fname); ``` を実行すると ``` 0x0000********** で例外がスローされました (Opencvcudatest.exe 内): Microsoft C++ の例外: cv::Exception (メモリの場所 0x000000*********)。 ``` というエラーが出てしまいます。 GPUMATをつかったjpeg画像の処理はできており、cudaの機能のインストールは見かけ上かもしれませんが成功しています。opencvはVS2019でbuildしています。コーデックのインストールも別途で必要かと考えましたが、方法もわからず、いくつかのwebサイトを見てもそういった記述もなく、投稿させていただきました。知見のある方がいらっしゃいましたら宜しくお願い致します。 環境としては Windows 10 home 64bit CPU Intel i7-8750H GPU RTX2070 note (driver 26.21.14.4274) cuda 10.1 opencv 4.1 Visual studio 2019 C++ となっております。
回答: 参考までに回答します。 cv::cudacodec::createVideoReaderを利用するには、NVIDIA VIDEO CODEC SDKが必要です。 NVIDIAのホームページからダウンロードして展開したファイルをCUDA10.1のインストールフォルダにコピーします。 その後、CMakeオプションのWITH_NVCUVIDをONにしてOpenCVライブラリをビルドします。 ビルドすることでcudacodec関連処理が取り込まれるのでオプションに変更がなくてもビルドは必要です。 これで準備完了。 あとはcuda.lib,nvcuvid.libをリンクしてあげれば実行できました。