主要内容gydF4y2Ba

获取图像和骨骼数据使用KinectgydF4y2Ba

在gydF4y2Ba检测Kinect设备gydF4y2Ba,你可以看到两个传感器在KinectgydF4y2Ba®gydF4y2Ba对于WindowsgydF4y2Ba®gydF4y2Ba由两个设备id,一个用于传感器和颜色深度传感器之一。在这个示例中,设备1是颜色传感器和设备2是深度传感器。这个例子显示了如何创建一个gydF4y2BavideoinputgydF4y2Ba对象的颜色传感器获取RGB图像,然后深度传感器获取骨骼数据。gydF4y2Ba

  1. 创建gydF4y2BavideoinputgydF4y2Ba对象的颜色传感器。gydF4y2Ba的DeviceIDgydF4y2Ba1是用于颜色传感器。gydF4y2Ba

    vid = videoinput (' kinect ' 1 ' RGB_640x480 ');gydF4y2Ba
  2. 看看源设备上的特定于设备的属性,这是色彩传感器在Kinect摄像头。gydF4y2Ba

    src = getselectedsource (vid);src显示总结视频源对象:一般设置:家长= [1 x1 videoinput]选择= SourceName = ColorSource标签=类型= videosource设备特定属性:加速度计= (0.0 -1.0 0.0)AutoExposure =在BacklightCompensation AutoWhiteBalance = = = 0.2156 CameraElevationAngle AverageBrightness亮度= 3 = 1对比ExposureTime = 1.0 FrameInterval = 0帧速率= 30增益= 0γ= 2.2色相= 0 PowerLineFrequency =禁用饱和度WhiteBalance = 2700 = 1锐度= 0.5gydF4y2Ba

    正如你所看到的在输出中,颜色传感器有一组特定于设备的属性。gydF4y2Ba

    特定于设备的财产——颜色传感器gydF4y2Ba 描述gydF4y2Ba
    加速度计gydF4y2Ba 返回三维加速度矢量数据的颜色和深度传感器。设备运行时的数据更新或预览。gydF4y2Ba

    这1 x 3双代表gydF4y2BaxgydF4y2Ba,gydF4y2BaygydF4y2Ba,gydF4y2BazgydF4y2Ba在重力加速度的值单位gydF4y2BaggydF4y2Ba(gydF4y2Ba9.81米/秒^ 2gydF4y2Ba)。例如,gydF4y2Ba

    (0.06 -1.00 -0.09)gydF4y2Ba

    代表的值gydF4y2BaxgydF4y2Ba作为gydF4y2Ba0.06gydF4y2Ba克,gydF4y2BaygydF4y2Ba作为gydF4y2Ba-1.00gydF4y2Bag,gydF4y2BazgydF4y2Ba作为gydF4y2Ba-0.09gydF4y2Bag。gydF4y2Ba

    AutoExposuregydF4y2Ba 使用自动设置曝光。这种控制其他相关属性是否激活。值是gydF4y2Ba在gydF4y2Ba(默认),gydF4y2Ba从gydF4y2Ba。gydF4y2Ba

    在gydF4y2Ba意味着自动曝光设置,无法设置这些属性,将抛出一个警告:gydF4y2BaFrameIntervalgydF4y2Ba,gydF4y2BaExposureTimegydF4y2Ba,gydF4y2Ba获得gydF4y2Ba。gydF4y2Ba

    从gydF4y2Ba意味着无法设置这些属性,将抛出一个警告:gydF4y2BaPowerLineFrequencygydF4y2Ba,gydF4y2BaBacklightCompensationgydF4y2Ba,gydF4y2Ba亮度gydF4y2Ba。gydF4y2Ba

    AutoWhiteBalancegydF4y2Ba 用于启用或禁用自动白平衡设置。gydF4y2Ba

    在gydF4y2Ba(默认)意味着它会自动白平衡和配置gydF4y2BaWhiteBalancegydF4y2Ba属性不能设置。gydF4y2Ba

    从gydF4y2Ba意味着gydF4y2BaWhiteBalancegydF4y2Ba属性是可变的。gydF4y2Ba

    BacklightCompensationgydF4y2Ba 配置调整摄像头捕捉图像背光补偿模式依赖环境条件。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba启用gydF4y2Ba。默认值是gydF4y2BaAverageBrightnessgydF4y2Ba。gydF4y2Ba

    值:gydF4y2Ba

    AverageBrightnessgydF4y2Ba倾向于平均亮度水平gydF4y2Ba

    CenterPrioritygydF4y2Ba支持现场的中心gydF4y2Ba

    LowLightsPrioritygydF4y2Ba支持低光照水平gydF4y2Ba

    CenterOnlygydF4y2Ba只支持中心gydF4y2Ba

    亮度gydF4y2Ba 显示亮度水平。值范围是gydF4y2Ba0.0gydF4y2Ba来gydF4y2Ba1.0gydF4y2Ba,默认值是gydF4y2Ba0.2156gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba启用gydF4y2Ba。gydF4y2Ba

    CameraElevationAnglegydF4y2Ba 控制镜头的角度传感器。这是相机的角度相对于地面。的值必须是一个整数属性范围-27 - 27度。默认值是最后一组值,因为这是一个棘手的设置。只有把它如果你想改变相机的角度。这个属性也与深度传感器。gydF4y2Ba
    对比gydF4y2Ba 表示对比水平。值必须在范围内gydF4y2Ba0.5gydF4y2Ba来gydF4y2Ba2gydF4y2Ba,一个默认值gydF4y2Ba1gydF4y2Ba。gydF4y2Ba
    ExposureTimegydF4y2Ba 表明增加的曝光时间1/10,000秒。值范围是gydF4y2Ba0gydF4y2Ba来gydF4y2Ba4000年gydF4y2Ba,默认的gydF4y2Ba0gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba禁用gydF4y2Ba。gydF4y2Ba

    FrameIntervalgydF4y2Ba 显示的帧间隔单位1/10,000秒。值范围是gydF4y2Ba0gydF4y2Ba来gydF4y2Ba4000年gydF4y2Ba,默认的gydF4y2Ba0gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba禁用gydF4y2Ba。gydF4y2Ba

    帧速率gydF4y2Ba 帧每秒的收购。这个属性是只读的,可能颜色传感器的值gydF4y2Ba12gydF4y2Ba,gydF4y2Ba15gydF4y2Ba,gydF4y2Ba30.gydF4y2Ba(默认)。它反映了实际运行时帧速率。gydF4y2Ba
    获得gydF4y2Ba 表示RGB颜色值的乘数。值范围是gydF4y2Ba1.0gydF4y2Ba来gydF4y2Ba16.0gydF4y2Ba,默认的gydF4y2Ba1.0gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba禁用gydF4y2Ba。gydF4y2Ba

    γgydF4y2Ba 表明伽马测量。值必须在范围内gydF4y2Ba1gydF4y2Ba来gydF4y2Ba2.8gydF4y2Ba,一个默认值gydF4y2Ba2.2gydF4y2Ba。gydF4y2Ba
    色调gydF4y2Ba 显示颜色设置。值必须在范围内gydF4y2Ba-22年gydF4y2Ba来gydF4y2Ba22gydF4y2Ba,一个默认值gydF4y2Ba0gydF4y2Ba。gydF4y2Ba
    PowerLineFrequencygydF4y2Ba 选择减少闪烁频率造成的电力线路。值是gydF4y2Ba禁用gydF4y2Ba,gydF4y2BaFiftyHertzgydF4y2Ba,gydF4y2BaSixtyHertzgydF4y2Ba。默认值是gydF4y2Ba禁用gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoExposuregydF4y2Ba被设置为gydF4y2Ba启用gydF4y2Ba。gydF4y2Ba

    饱和gydF4y2Ba 表明饱和水平。值必须在范围内gydF4y2Ba0gydF4y2Ba来gydF4y2Ba2gydF4y2Ba,一个默认值gydF4y2Ba1gydF4y2Ba。gydF4y2Ba
    锐度gydF4y2Ba 显示清晰度水平。值必须在范围内gydF4y2Ba0gydF4y2Ba来gydF4y2Ba1gydF4y2Ba,一个默认值gydF4y2Ba0.5gydF4y2Ba。gydF4y2Ba
    WhiteBalancegydF4y2Ba 表示色温在开尔文。值范围是gydF4y2Ba2700年gydF4y2Ba来gydF4y2Ba6500年gydF4y2Ba默认的是gydF4y2Ba2700年gydF4y2Ba。gydF4y2Ba

    注意,这个属性是唯一有效的如果gydF4y2BaAutoWhiteBalancegydF4y2Ba被设置为gydF4y2Ba禁用gydF4y2Ba。gydF4y2Ba

  3. 你可以设置一些属性前面步骤所示。例如,您可能在低光情况下获取图像。你可以通过设置调整收购gydF4y2BaBacklightCompensationgydF4y2Ba财产gydF4y2BaLowLightsPrioritygydF4y2Ba,有利于低光照水平。gydF4y2Ba

    src。BacklightCompensation =“LowLightsPriority”;gydF4y2Ba
  4. 通过调用预览颜色流gydF4y2Ba预览gydF4y2Ba颜色传感器在步骤1中创建的对象。gydF4y2Ba

    预览(vid);gydF4y2Ba

    当你完成预览,关闭预览窗口。gydF4y2Ba

    closepreview (vid);gydF4y2Ba
  5. 创建gydF4y2BavideoinputgydF4y2Ba对象的深度传感器。注意,创建第二个对象(gydF4y2Bavid2gydF4y2Ba),gydF4y2Ba的DeviceIDgydF4y2Ba2是用于深度传感器。gydF4y2Ba

    vid2 = videoinput (' kinect ' 2 ' Depth_640x480 ');gydF4y2Ba
  6. 看看源设备上的特定于设备的属性,即深度传感器在Kinect。gydF4y2Ba

    src = getselectedsource (vid2);视频源对象src显示总结:一般设置:家长= [1 x1 videoinput]选择= SourceName = DepthSource标签=类型= videosource设备特定属性:加速度计= (0.0 -1.0 0.0)BodyPosture =站CameraElevationAngle = 4 DepthMode =默认的帧速率= 30 IREmitter = SkeletonsToTrack = [1 x0双]TrackingMode =gydF4y2Ba

    正如你所看到的在输出中,深度传感器有一组特定于设备的属性与骨骼跟踪。这些属性是特定于深度传感器。gydF4y2Ba

    特定于设备的财产——深度传感器gydF4y2Ba 描述gydF4y2Ba
    加速度计gydF4y2Ba 返回三维加速度矢量数据的颜色和深度传感器。设备运行时的数据更新或预览。gydF4y2Ba

    这1 x 3双代表gydF4y2BaxgydF4y2Ba,gydF4y2BaygydF4y2Ba,gydF4y2BazgydF4y2Ba在重力加速度的值单位gydF4y2BaggydF4y2Ba(gydF4y2Ba9.81米/秒^ 2gydF4y2Ba)。例如,gydF4y2Ba

    (0.06 -1.00 -0.09)gydF4y2Ba

    代表的值gydF4y2BaxgydF4y2Ba作为gydF4y2Ba0.06gydF4y2Ba克,gydF4y2BaygydF4y2Ba作为gydF4y2Ba-1.00gydF4y2Bag,gydF4y2BazgydF4y2Ba作为gydF4y2Ba-0.09gydF4y2Bag。gydF4y2Ba

    BodyPosturegydF4y2Ba 表明追踪骨骼是否站着或坐着。值是gydF4y2Ba站gydF4y2Ba(给了20点骨架数据)gydF4y2Ba坐着gydF4y2Ba(给了10点框架数据,使用联合指数2 - 11)。gydF4y2Ba站gydF4y2Ba是默认的。gydF4y2Ba

    注意,如果gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba坐着gydF4y2Ba模式,gydF4y2BaTrackingModegydF4y2Ba被设置为gydF4y2Ba位置gydF4y2Ba返回,没有位置,因为gydF4y2Ba位置gydF4y2Ba髋关节的位置和髋关节不跟踪gydF4y2Ba坐着gydF4y2Ba模式。gydF4y2Ba

    看到分段年底“BodyPosture联合指数”这个例子的指标列表20骨骼关节。gydF4y2Ba

    CameraElevationAnglegydF4y2Ba 控制镜头的角度传感器。这是相机的角度相对于地面。的值必须是一个整数属性范围-27 - 27度。默认值是最后一组值,因为这是一个棘手的设置。只有把它如果你想改变相机的角度。这个属性也与颜色传感器。gydF4y2Ba
    DepthModegydF4y2Ba 表明深度深度图的范围。值是gydF4y2Ba默认的gydF4y2Ba(范围50到400厘米)gydF4y2Ba附近gydF4y2Ba40到300厘米(范围)。gydF4y2Ba
    帧速率gydF4y2Ba 帧每秒的收购。这个属性是只读的,是固定的gydF4y2Ba30.gydF4y2Ba深度传感器的所有格式。它反映了实际运行时帧速率。gydF4y2Ba
    IREmittergydF4y2Ba 控制红外发射器是否打开或关闭,值gydF4y2Ba在gydF4y2Ba和gydF4y2Ba从gydF4y2Ba。最初,默认值是gydF4y2Ba在gydF4y2Ba。然而,这是一个棘手的属性,默认值是最后一组值。如果你设置它gydF4y2Ba从gydF4y2Ba,它仍将在未来使用,直到你改变设置。gydF4y2Ba

    这个属性的一个优势是,它是有用的在使用多个Kinect设备,以避免干扰。gydF4y2Ba

    SkeletonsToTrackgydF4y2Ba 表明骨骼追踪ID返回作为元数据的一部分。值:gydF4y2Ba

    []gydF4y2Ba默认跟踪gydF4y2Ba

    (TrackingID1)gydF4y2Ba轨道1与追踪ID = TrackingID1骨架gydF4y2Ba

    [TrackingID1 TrackingID2]gydF4y2Ba跟踪2骨骼追踪id = TrackingID1和TrackingID2gydF4y2Ba

    TrackingModegydF4y2Ba 表明跟踪状态。值:gydF4y2Ba

    骨架gydF4y2Ba完整的骨骼和关节gydF4y2Ba

    位置gydF4y2Ba只跟踪髋关节位置gydF4y2Ba

    从gydF4y2Ba禁用骨架位置跟踪(默认)gydF4y2Ba

    注意,如果gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba坐着gydF4y2Ba模式,gydF4y2BaTrackingModegydF4y2Ba被设置为gydF4y2Ba位置gydF4y2Ba返回,没有位置,因为gydF4y2Ba位置gydF4y2Ba髋关节的位置和髋关节不跟踪gydF4y2Ba坐着gydF4y2Ba模式。gydF4y2Ba

  7. 开始第二个gydF4y2BavideoinputgydF4y2Ba对象(深度流)。gydF4y2Ba

    开始(vid2);gydF4y2Ba
  8. 骨骼访问数据流作为元数据的深度。您可以使用gydF4y2BagetdatagydF4y2Ba来访问它。gydF4y2Ba

    %获得上的数据对象。(框架、ts、元数据)= getdata (vid2);%看看到骨骼中的参数数据的元数据。元数据的元数据= 10 x1结构体数组字段:AbsTime: [1 x1双]FrameNumber: [1 x1双]IsPositionTracked: [1 x6逻辑]IsSkeletonTracked: [1 x6逻辑]JointDepthIndices: [20 x2x6双]JointImageIndices: [20 x2x6双]JointTrackingState: [20 x6双]JointWorldCoordinates: [20 x3x6双]PositionDepthIndices: [2 x6双]PositionImageIndices: [2 x6双]PositionWorldCoordinates: [3 x6双]RelativeFrame: [1 x1双]SegmentationData: [640 x480双]SkeletonTrackingID: [1 x6双]TriggerIndex: [1 x1双]gydF4y2Ba

    这些元数据字段相关的跟踪框架。gydF4y2Ba

    元数据gydF4y2Ba 描述gydF4y2Ba
    AbsTimegydF4y2Ba 这是一个1 x 1双,代表了时间戳,包括日期和时间,在MATLAB时钟格式。gydF4y2Ba
    FrameNumbergydF4y2Ba 这是一个1 x 1,代表了帧数的两倍。gydF4y2Ba
    IsPositionTrackedgydF4y2Ba 这是1 x 6真/假值的布尔矩阵的跟踪每个六骨骼的位置。一个gydF4y2Ba1gydF4y2Ba表示位置和跟踪gydF4y2Ba0gydF4y2Ba表明事实并非如此。gydF4y2Ba
    IsSkeletonTrackedgydF4y2Ba 这是1 x 6布尔矩阵的真/假值的跟踪状态的每个六骨架。一个gydF4y2Ba1gydF4y2Ba显示和跟踪gydF4y2Ba0gydF4y2Ba表明事实并非如此。gydF4y2Ba
    JointDepthIndicesgydF4y2Ba 如果gydF4y2BaBodyPosturegydF4y2Ba属性设置为gydF4y2Ba站gydF4y2Ba,这是一个20 x 2 x 6双矩阵x和关节坐标20像素相对于深度图像,对六个可能的骨架。如果gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba坐着gydF4y2Ba,这将是一个10 x 2 x 6双10关节。gydF4y2Ba
    JointImageIndicesgydF4y2Ba 如果gydF4y2BaBodyPosturegydF4y2Ba属性设置为gydF4y2Ba站gydF4y2Ba,这是一个20 x 2 x 6双矩阵20关节的x坐标像素相对于彩色图像,六个可能的骨架。如果gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba坐着gydF4y2Ba,这将是一个10 x 2 x 6双10关节。gydF4y2Ba
    JointTrackingStategydF4y2Ba 这个20 x 6的整数矩阵包含每个关节的跟踪精度的枚举值为所有六个骨架。值包括:gydF4y2Ba

    0gydF4y2Ba没有跟踪gydF4y2Ba

    1gydF4y2Ba位置推断gydF4y2Ba

    2gydF4y2Ba位置追踪gydF4y2Ba

    JointWorldCoordinatesgydF4y2Ba 这是一个20 x 3 x 6双矩阵的x - y和z坐标20关节,从传感器米,六个可能的骨架,如果gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba站gydF4y2Ba。如果它被设置gydF4y2Ba坐着gydF4y2Ba,这将是一个10 x 3 x 6双10关节。gydF4y2Ba

    看到第9步的语法如何看到这个数据。gydF4y2Ba

    PositionDepthIndicesgydF4y2Ba 2 x 6双矩阵每个骨架的x和Y坐标像素相对于深度图像。gydF4y2Ba
    PositionImageIndicesgydF4y2Ba 2 x 6双矩阵每个骷髅的x和Y坐标像素相对于彩色图像。gydF4y2Ba
    PositionWorldCoordinatesgydF4y2Ba 3 x 6双矩阵x, Y, Z坐标相对于传感器中每个骨架的米。gydF4y2Ba
    RelativeFramegydF4y2Ba 这1 x 1双代表帧数相对于一个触发器的执行如果使用触发。gydF4y2Ba
    SegmentationDatagydF4y2Ba 图像大小双阵列与每个像素映射到一个跟踪/检测到骨架,由数字1到6。这个分段映射是一个位图像素值对应于人的视场的索引是最接近相机像素位置。值为0时表示没有跟踪框架。gydF4y2Ba
    SkeletonTrackingIDgydF4y2Ba 这个1 x 6整数矩阵包含所有六个骨架的追踪id。这些id跟踪特定的骨骼使用gydF4y2BaSkeletonsToTrackgydF4y2Ba房地产在步骤5中。gydF4y2Ba

    追踪id生成的Kinect,改变从收购到收购。gydF4y2Ba

    TriggerIndexgydF4y2Ba 这是1 x 1双,代表了触发事件如果使用触发。gydF4y2Ba
  9. 你可以看看任何个人财产通过钻入元数据。例如,看一下gydF4y2BaIsSkeletonTrackedgydF4y2Ba财产。gydF4y2Ba

    元数据。IsSkeletonTracked ans = 1 0 0 0 0 0gydF4y2Ba

    在这种情况下,这意味着六个可能的骨架,有一个骨架被跟踪,在第一的位置。如果你有多个骨骼,这个属性是有用的确认哪些是被跟踪。gydF4y2Ba

  10. 得到的接头地点在世界坐标使用第一人称gydF4y2BaJointWorldCoordinatesgydF4y2Ba财产。因为这是人在位置1,索引使用gydF4y2Ba1gydF4y2Ba。gydF4y2Ba

    metaData.JointWorldCoordinates (:,: 1) ans = -0.1408 -0.3257 2.1674 -0.1408 -0.2257 2.1674 -0.1368 -0.0098 2.2594 -0.1324 0.1963 2.3447 -0.3024 -0.0058 2.2574 -0.3622 -0.3361 2.1641 -0.3843 -0.6279 1.9877 -0.4043 -0.6779 1.9877 0.0301 -0.0125 2.2603 0.2364 0.2775 2.2117 0.3775 0.5872 2.2022 0.4075 0.6372 2.2022 -0.2532 -0.4392 2.0742 -0.1869 -0.8425 1.8432 -0.1869 -1.2941 1.8432 -0.1969 -1.3541 1.8432 -0.0360 -0.4436 2.0771 0.0382 -0.8350 1.8286 0.1096 -1.2114 1.5896 0.1196 -1.2514 1.5896gydF4y2Ba

    列代表了X, Y, Z坐标在骨架1米的20分。gydF4y2Ba

  11. 您可以选择查看分割数据作为一个图像。gydF4y2Ba

    %视图分割数据作为一个图像。显示亮度图像(metaDataDepth.SegmentationData);%设置颜色映射到飞机颜色代码发现的人。colormap(飞机);gydF4y2Ba

BodyPosture联合指数gydF4y2Ba

的gydF4y2BaBodyPosturegydF4y2Ba属性,在步骤5,表明追踪骨骼是否站着或坐着。值是gydF4y2Ba站gydF4y2Ba(给了20点骨架数据)gydF4y2Ba坐着gydF4y2Ba(给了10点框架数据,使用联合指数2 - 11)。gydF4y2Ba

这是关节的顺序返回的Kinect适配器:gydF4y2Ba

Hip_Center = 1;脊柱= 2;Shoulder_Center = 3;头= 4;Shoulder_Left = 5;Elbow_Left = 6;Wrist_Left = 7;Hand_Left = 8;Shoulder_Right = 9;Elbow_Right = 10; Wrist_Right = 11; Hand_Right = 12; Hip_Left = 13; Knee_Left = 14; Ankle_Left = 15; Foot_Left = 16; Hip_Right = 17; Knee_Right = 18; Ankle_Right = 19; Foot_Right = 20;

当gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba站gydF4y2Ba返回,所有20个指标,如上所示。当gydF4y2BaBodyPosturegydF4y2Ba被设置为gydF4y2Ba坐着gydF4y2Ba、数字2到11返回,因为这代表了上半身的骨架。gydF4y2Ba

请注意gydF4y2Ba

理解的差异使用Kinect适配器相比以前的工具箱适配器,看看gydF4y2Ba重要的Kinect适配器的信息gydF4y2Ba。Kinect设备信息发现和使用两个设备id,明白了gydF4y2Ba检测Kinect设备gydF4y2Ba。同时收购的一个例子,看到gydF4y2Ba同时获取设备从颜色和深度gydF4y2Ba。gydF4y2Ba