我的主要动机是从简单的 RGB 图像(来自我的网络摄像头的图像)中检测手部。我找到了一个示例代码 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 图像转换为那些深度图像?
- 是否有一种简单的替代技术来检测手?