Intel RealSense R200カメラ-コードサンプル



最近Intel RealSenseテクノロジーの使用を開始したプログラマー向けに、R200カメラの機能を示す3つの簡単な例を含む投稿を準備しました。 含まれる例:


R200カメラの生ストリームを記録および表示する


このダウンロード可能なコードは、 Windows用インテル®RealSense™SDKを使用して、C#/ XAMLで未加工のR200カメラストリームを記録および表示する基本を示しています 。 Visual Studio *ソリューションは、4つの単純なプロジェクトで構成されています(各サイズは200行以下のコードです)。


図1.すべてのスレッドのサンプルコード

ソフトウェア開発環境


このコードサンプルは、Microsoft Visual Studio Community 2015を使用してWindows®10 RTMで作成されました。このサンプルには、 Visual C# -Windows - Classic Desktopプロジェクトテンプレートが使用されました。
このプロジェクトで使用されるSDKおよびDCMバージョン。

ハードウェアの説明


この作業には、 インテル®RealSense™開発キット(R200)を使用しました。これには、カメラ、 USB3ケーブル、ラップトップにカメラを取り付けるための磁気マウントが含まれています(図2)。


図2.インテル®RealSense™開発キット(R200)

サンプルコードR200には、次のハードウェア要件が適用されます。

重要! カメラから送信されるデータストリームをサポートするには、USB3インターフェイスが必要です。 このインターフェイスは、クライアントシステムの専用USB3ポートに接続する必要があります(スプリッターを使用しない)。

コードの説明


Visual Studioのソリューションは、C#で開発された4つのWPFプロジェクトで構成されています。 これらのプロジェクトは、libpxcclr.cs.dll(マネージDLL)への明示的なパスを使用します。

C:\ Program Files(x86)\ Intel \ RSSDK \ bin \ x64

システムのSDKが別のフォルダーにインストールされている場合は、このパスを忘れずに変更してください。
DLLの64ビットバージョンを起動しているため、メニューの[ プロジェクト ]→[ プロパティ ]→[ プラットフォームターゲット ]に移動し、値「x64」が選択されていることを確認します。
特定のプロジェクトをビルドして実行するには、ソリューションエクスプローラーでプロジェクト名(AllStreamsなど)を右クリックし、メニューから[ スタートアッププロジェクトとして設定 ]を選択します。

CameraStreams内のすべてのプロジェクトは同様の構造を持っています。

SessionおよびSenseManagerインターフェースを構成します。

AcquireFrame - ReleaseFrameループを処理するUpdateというワークフローを実行します。

AcquireFrame - ReleaseFrameループでは、次のアクションが発生します

Renderメソッドでは、次のアクションが発生します。

ShutDownメソッドは、 Window_ClosingまたはbtnExit_Clickイベントが発生するたびに呼び出され ますShutDownメソッドでは、次のアクションが発生します。


深度フォーカス


この C#/ XAML コード例は、Windows用インテル®RealSense™SDK *のEnhanced Photography(EP)を使用して、画像をキャプチャした後に画像の焦点を合わせる基本を示しています。 このサンプルコードは、次のアクションを実行します。


図3.フォーカスの深さを変更する例(花に焦点を当てる)


図4.保存された画像ファイル

SDKマニュアル( RSSDK_DIR \ doc \ PDF \ sdkmanuals.pdfファイル )で説明されているように、Enhanced Photography(EP)モジュールは、写真とビデオ。 被写界深度を変更する機能は、撮影後にフレームの焦点と被写界深度を変更します。 (このアルゴリズムはR200カメラでのみ機能することに注意してください。)

ハードウェアの説明


この作業にはIntel®RealSense™Developer Kit(R200)を使用しました。 カメラは、キットに含まれる磁気マウントを使用してラップトップに取り付けられました(図5)。


図5.磁気マウントに取り付けられたカメラ

アセンブリノート


このプロジェクトはSystem.Drawing.Imaging名前空間を使用します。 リンクは手動で指定します。新しいプロジェクトで、ソリューションエクスプローラーの[ 参照設定 ]を右クリックし、[ 参照の 追加...]を選択してリンクマネージャーウィンドウを開きます。 次に、 アセンブリ、フレームワークを選択し、リストでSystem.Drawingを見つけます。 チェックボックスをオンにして、[OK]をクリックします。

このプロジェクトでは、libpxcclr.cs.dll(マネージDLL)への明示的なパスを使用します: C:\ Program Files(x86)\ Intel \ RSSDK \ bin \ x64 システムのSDKが別のフォルダーにインストールされている場合は、このパスを忘れずに変更してください。

プロジェクトはDLLの64ビットバージョンを参照しているため、「x64」パラメーターがプロジェクトプロパティプラットフォームターゲットセクション(プロジェクト→プロパティ→ターゲットプラットフォーム)で指定されていることを確認してください。

プロジェクトには、アンマネージDLL(libpxccpp2c.dll)がターゲット出力フォルダーにコピーされることを確認するビルド後イベントコマンドが含まれています。
if "$(Platform)" == "x86" (copy /y "$(RSSDK_DIR)\bin\win32\libpxccpp2c.dll" "$(TargetDir)" ) else ( copy /y
"$(RSSDK_DIR)\bin\x64\libpxccpp2c.dll" "$(TargetDir)" )


顔追跡


この C#/ XAML コード例は、Windows用インテル®RealSense™SDK *の顔追跡アルゴリズムを使用して、R200を使用してリアルタイムで人の顔を検出および追跡する基本を示しています。 このサンプルコードは、次のアクションを実行します。


図6.顔追跡コードのサンプル

ハードウェアの説明


この作業にはIntel®RealSense™Developer Kit(R200)を使用しました。 オプションの磁気マウント**を使用して、カメラを標準の三脚に取り付けました**(図7)。


図7.磁気マウントに取り付けられたカメラ(すべてのキットに付属しているわけではありません)

アセンブリノート


前の例を参照してください。

コードの説明


サンプルコードの構造は次のとおりです。

SessionおよびSenseManagerインターフェイス、および顔認識モジュールを構成します。
AcquireFrame - ReleaseFrameループを処理するUpdateというワークフローを実行します。
AcquireFrame - ReleaseFrameループでは、次のアクションが発生します

Renderメソッドでは、次のアクションが発生します。

ShutDownメソッドは、 Window_ClosingまたはbtnExit_Clickイベントが発生するたびに呼び出され ますShutDownメソッドでは、次のアクションが発生します。

Source: https://habr.com/ru/post/J269253/


All Articles