16

ご存じのように、OpenCV はコンピューター ビジョンで驚くほど強力な処理を実行できる非常に便利なライブラリです。そのため、Unity3dでの使用方法を理解するのに十分な時間を費やしました。多くの問題があり、ネットで検索すると、いくつかの提案が見つかりましたが、うまくいきませんでした。

  • Unity Pro 4.0 を使用しています
  • このバージョンの Emgu CV (emgucv-windows-universal-gpu 2.4.9.1847)
  • Unityプロジェクトの私のターゲットは次のとおりです:Windowsであり、Webプレーヤーではありません
4

1 に答える 1

5

これは、それを使用したいすべての人のために私がしたことです:

  1. このバージョンの EmguCV をインストールすると、C でフォルダー EMGU が作成されます。
  2. このフォルダには、「emgucv-windows-universal-gpu 2.4.9.1847」という名前の単一のフォルダがあります</li>
  3. 「bin フォルダ」に移動</li>
  4. 「bin フォルダー」から、x86 フォルダー内のすべての dll (22 個の dll) と、bin 内の dll (12 個の dll: Emgu.CV、Emgu.CV.UI など) を直接コピーする必要があります。X64 ターゲットの場合、同じことを試すことができます。これは、X64 フォルダーから dll を取得することで機能すると思います。
  5. Unity プロジェクトに Plugins という名前のフォルダーを作成します (Assets->Plugins)。
  6. これら 34 個の dll ファイルをすべて Plugins フォルダーに貼り付けます。
  7. この 34 個の dll ファイルから、「npp32_50_35」と「cudart32_50_35」を Unity エディター フォルダー (私の場合は「C:\Program Files (x86)\Unity\Editor」) にコピーします。</li>
  8. Dlls に関する作業はこれで完了です。

これをテストする方法は次のとおりです。

  1. 「picture1.jpg」を受け取り、最初の 200 対角ピクセルの色を白色 (255,255,255) に変更し、新しい「picture2.jpg」を保存する小さなスクリプトを作成します。これは、スクリプトに入れる必要があるものです。 :

    using UnityEngine;
    using System.Collections;    
    using Emgu.CV;    
    using Emgu.CV.Util;    
    using Emgu.CV.UI;           
    using Emgu.CV.CvEnum;    
    using Emgu.CV.Structure;    
    using System.Runtime.InteropServices;    
    using System;    
    using System.Drawing;    
    
    Image<Bgr, byte> picture = new Image<Bgr, byte>("C:\\picture1.jpg");     
    Bgr myWhiteColor = new Bgr(255, 255, 255);    
    For (int i=0; i<200; i++)    
    {picture[i,i]= color;}    
    picture.Save("C:\\picture2.jpg"); 
    
  2. Plugins フォルダに異なる dll を追加することで、それらは Mono Editor で自動的に参照されますが、おそらく「System.Drawing」ライブラリで問題が発生する可能性があるため、忘れないでくださいusing System.Drawing。また、スクリプト エディターに移動して参照する必要があります。

    MonoDevelop-Unity の場合は、左側のソリューション エクスプローラーに移動し、[Refrences] -> [参照の編集] -> を右クリックして、左側の列で system.drawing を検索し、右側の列に表示されることを確認して、[OK] を押します。

  3. また、Unity->file->build settings でビルド設定を次のように変更することを忘れないでください。

    • ウェブプレーヤーの代わりに PC Mac と Linux
    • ターゲット=窓
    • アーキテクチャ= x86
    • 次に、「プレーヤー設定ボタン」を押して「新しい画面のその他の設定」に移動し、Api 互換性ラベルを .NET 2.0 サブセットではなく .NET 2.0 に設定します。

今のところ、自由にスクリプトをテストし、OpenCV を使用して素晴らしい作業を行うことができます

PS: なぜ「npp32_50_35」と「cudart32_50_35」が Editor フォルダーにある必要があるのか​​はわかりませんが、それが唯一の状況でした。

于 2014-10-23T08:03:21.560 に答える