【问题标题】:Hand segmentation using Depth thresholding使用深度阈值进行手部分割
【发布时间】:2017-07-31 06:07:40
【问题描述】:

我想使用深度阈值从深度图像中分割手部。我使用了这个链接中的这个 kinect 和跳跃数据集-

http://lttm.dei.unipd.it/downloads/gesture/

我尝试了这两个代码,但在这两种情况下我得到的输出都是全黑图像。原始 .png 图像是

我从数据集中的 1_depth.bin 文件中选择了深度值。

代码 1

I = fopen('D:\dsktop\kinect_leap_dataset\acquisitions\P1\G1\1_depth.bin', 'r');
A = fread(I, 480*640, 'uint8=>uint8');
A = reshape(A, 480, 640);

min_row = min(A);
min_col = min(min_row);

for i = 1:480
    for j = 1:640
        if ((A(i,j) > (min_col + 10)) || (A(i,j) == (min_col + 10)))
           A(i,j) = 1;
       else
           A(i,j) = 0;
        end
    end
end
imshow(A)

代码 2

image = imread('D:\dsktop\kinect_leap_dataset\acquisitions\P1\G1\1_depth.png');
I = fopen('D:\dsktop\kinect_leap_dataset\acquisitions\P1\G1\1_depth.bin', 'r');
A = fread(I, 480*640, 'uint8=>uint8');
A = reshape(A, 480, 640);

min_row = min(A);
min_col = min(min_row);
for i = 1:480
    for j = 1:640
        if ((A(i,j) > (min_col + 10)) || (A(i,j) == (min_col + 10)))
            image(i,j) = 1;
        else
            image(i,j) = 0;
        end
    end
end
imshow(image)

我得到的输出是

请告诉我这段代码有什么问题以及为什么我没有发现任何问题?

【问题讨论】:

  • 您的Auint8 类型,并且具有值{0,1} 以显示“白色”Matlab 预计uint8 值为255。尝试imshow(A*255);imshow(A,[]);imagesc(A);
  • 您的深度信息 A 似乎以“行专业”顺序存储,而不是 matlab 的“列专业”。尝试阅读 A:A = fread(I, 480*640, 'uint8=>uint8'); A = reshape(A, 640,480).';
  • 我试过了,但还是一样。
  • 您确定数据以每像素 8 位存储吗?
  • 谢谢谢!!现在图片变成了正确的黑白 :) 感谢您在这个愚蠢的问题上容忍我。 ;D

标签: matlab kinect image-segmentation gesture-recognition image-thresholding


【解决方案1】:

您的代码极不矢量化。以下是如何以更加矢量化的方式重新编写代码。这既更高效,也更“可读”:

I = fopen('D:\dsktop\kinect_leap_dataset\acquisitions\P1\G1\1_depth.bin', 'r');
A = fread(I, 480*640, 'uint8=>uint8');
A = reshape(A, 480, 640);

min_ = min(A(:));  % minimal value across rows and columns
mask = A>=(min_+10);  % no need for loop, vectorize code.
imshow(mask, []);

【讨论】:

  • 谢谢谢!!现在我得到了除黑色窗口之外的一些输出。 :) 但是我现在得到了一些奇怪的输出,其中有一些黑色部分,但白色部分不是那么白,它有点偏白色。你能说出为什么吗?我已多次更改阈值,但从未获得正确的白色。
  • @Prachi 请在您的问题中添加屏幕截图以说明问题。
  • 我已经附上了上面的输出图片。
猜你喜欢
  • 2016-09-02
  • 1970-01-01
  • 2017-08-28
  • 2019-10-16
  • 2015-07-22
  • 2020-02-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
相关资源
最近更新 更多