私の主な動機は、単純なRGB画像(私のWebカメラからの画像)から手を検出することです。サンプルコードfind_hand_pointを見つけました
function [result, depth] = find_hand_point(depth_frame)
% function result = find_hand_point(depth_frame)
%
% returns the coordinate of a pixel that we expect to belong to the hand.
% very simple implementation, we assume that the hand is the closest object
% to the sensor.
max_value = max(depth_frame(:));
current2 = depth_frame;
current2(depth_frame == 0) = max_value;
blurred = imfilter(current2, ones(5, 5)/25, 'symmetric', 'same');
minimum = min(blurred(:));
[is, js] = find(blurred == minimum);
result = [is(1), js(1)];
depth = minimum;
結果変数は、カメラ(手)に最も近いものの座標です。
kinectデバイスからの深度画像がこの関数に渡され、結果は次のようになります。
http://img839.imageshack.us/img839/5562/testcs.jpg
緑の長方形は、カメラ(手)に最も近いものを示しています。
問題:
- 私のラップトップカメラがキャプチャする画像は、深度画像ではなく、単純なRGB画像です。
- RGB画像をそれらの深度画像に変換する方法はありますか?
- 手を検出するための簡単な代替手法はありますか?