GW中はタケノコ掘り
UnityでOpenCVを使いたくて有志の方が制作したopencvsharp3を導入しました
ネットを参考にしながらやってみましたが、エラーが発生したのでそれに関して書いておきます
Unityのバージョンは,Unity 2018.2.21f1 (64-bit)です
- UnityにNuGetForUnity.1.1.0をインポート
以下のリンクから.unitypackageを取得します
自分が行ったときは,NuGetForUnity.1.1.0.unitypackageでした
取得した.unitypackageをunityにインポートします
- OpenCVSharp3をunityへインポート
そのあと,以下のリンクに従ってOpenCVSharp3を追加します
インポートすると以下のようなAssets/Packagesが入ります
今回インポートしたOpenCVSharp3のバージョンは4.0.0でした
(NuGetはNuGetForUnity.1.1.0.unitypackageをインポートしたときのものです)
そうすると,Matなどに代表されるOpenCVの標準的なライブラリが使えるようになると思います
さっきの参考にしたページをみて試しに適当なスクリプトを作るとMatが使えるようになっているはずです
- ArUcoなどの機能追加
自分がしたいのはArUcoでARマーカを認識することです
なので,以下のブログを参考にしてスクリプトを書いてみました
けど,使おうとしたら以下のようなエラーが出ました
DllNotFoundException: OpenCvSharpExtern
OpenCvSharp.NativeMethods.LoadLibraries (IEnumerable`1 additionalPaths)
OpenCvSharp.NativeMethods..cctor ()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for OpenCvSharp.NativeMethods
OpenCvSharp.VideoCapture..ctor (Int32 index)
Rethrow as OpenCvSharpException: Failed to create VideoCapture
OpenCvSharp.VideoCapture..ctor (Int32 index)
webcam.Start () (at Assets/Scripts/webcam.cs:24)
OpenCvSharpExtern.dllが無いようです
というわけで,もしNuGetForUnityを使わずにOpenCVSharp3を入れるとどういうファイル構成になるかを調べるために以下のページからバージョン4.0.0のOpenCVSharp3をダウンロードしました
この時,x64の64ビットとx86の32ビットがありますが,Unityのバージョンに合わせてダウンロードしてください
つまり,UnityのバージョンとOpenCVのバージョンを合わせてダウンロードする必要があります
(もし,バージョン違いを入れるとエラー出ます)
そして,Unity経由で入るファイルと,製作者の人が出してるソースファイルを見るとOpenCvSharpExtern.dllが足りませんでした
なので,これをドラッグ&ドロップでAssets/Packages/OpenCV..../libにOpenCvSharpExtern.dllをドラッグ&ドロップで入れます
そうするとエラーがなくなりました
これで公式のOpenCVのインストーラを使うことなくOpenCVをUnityに導入することができたはずです
次はこれを使って画像処理をしていきます