Webカメラの画像をc#で取り込む

「記事番号前後してませんか?」「気のせいですよ?」 Webカメラを75%OFFで購入したけれども、今に至るまで全く使っていなかったので、何か作ろう。 VisualStudio2015 Csharpを使って、WindowsFormにカメラの画像を表示するプログラムを作ります。 今更すぎるopenCV初体験。CSharpWindowsアプリも数個しか作ったことがないです。

続きを読む

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : 画像解析 C#

[Unity][Kinect]Unityで画像処理を行うときに実装しなければならないこと

そもそもUnityでKinect使うって、大抵の場合ボーン処理(プレイヤーの腕とかを取得する奴)ですよね。画像処理(カラー画像と深さ画像を併せて解析してあーだこーだ)とかやりませんよね。

でもやりたいと感じることもあるかも。
ただ解析を凡人のC#のハンドコードでやろうとすると、かなり重くなります。気に留めてください。Javascript?やめてください。
openCVを使うべきですが、また別の資料を解読する羽目になるので、ここでは触れません。


「Unity Kinect」とググるだけで、こんなUnityで使えるKinectSDKがヒットします。

ボーン取得に置いては十分(使ってないのでよく分からないけれども十分でしょう)ですし、カメラ画像も取得可能です。
カラーと深さのカメラ画像を取得して弄り倒せばできるんじゃない?と考えるでしょう。僕も考えました。


しかし、これだけでは画像処理ができない。このSDKには座標変換に関する関数が用意されていない
(2014/07/19時点。2015年現在は不明)から。
深さ画像を3次元座標に変換させたり、深さ画像をカラー画像に対応させるには、それを行う関数を追加させなければなりません。


「深さ画像を3次元座標に変換させたり、深さ画像をカラー画像に対応させる」を実現するためには、この2つの関数があれば十分でしょう。
NuiTransformDepthImageToSkeleton
深さ画像の座標から、実際の3次元座標空間に変換する
NuiImageGetColorPixelCoordinatesFromDepthPixel
深さ画像の座標に対応するカラー画像の座標を導出する

1つ目はC++のヘッダーファイルNuiSkeleton.hに、2つ目はKinect10.dllに用意されています。
各関数の詳細はMSDNを参照。後者についてはココのブログにざっくりメモガキが書いてあります。


この2つの関数をUnity上で実現するための方法を以下に記述します。

以下、追記文 ↓

2015/08/04 Kinect関連で訪問する方が多いので説明文修正

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : Kinect Unity C#

[Unity]テクスチャを自前でプログラム上で書く「LoadRawTextureData」

意外と資料が無かったので書いておく。
LoadRawTextureData


void Start () {
Texture2D texture = new Texture2D (128, 128, TextureFormat.RGB24, false);
byte[] data = new byte[128 * 128 * 3];
for (int i=0;i<(128*128*3);i+=3){
data[i ] = (byte)(i);
data[i+1] = (byte)(i);
data[i+2] = (byte)(i);
}
texture.LoadRawTextureData (data);

texture.Apply();
renderer.material.mainTexture = texture;

}


赤文字の箇所でしっかり設定しておかないと、嵌ります。この場合、RGB24 = R(8bit) + G(8) + B(8)ということですね。
テクスチャに描画している部分は、data配列変数に値を代入している箇所。byte配列なのでdrawlineとかは利かない…かな?

2015/04/26 修正

tag : Unity C#

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1276位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
225位
アクセスランキングを見る>>