在gydF4y2Ba检测Kinect V1设备gydF4y2Ba,你可以看到Kinect上的两个传感器gydF4y2Ba®gydF4y2Ba对于WindowsgydF4y2Ba®gydF4y2Ba设备由两个设备id表示,一个是颜色传感器,一个是深度传感器。在这个示例中,设备1是颜色传感器,设备2是深度传感器。这个例子展示了如何创建一个gydF4y2BavideoinputgydF4y2Ba
物体由颜色传感器获取RGB图像,再由深度传感器获取骨骼数据。gydF4y2Ba
创建gydF4y2BavideoinputgydF4y2Ba
对象为颜色传感器。gydF4y2Ba设备编号gydF4y2Ba
1为颜色传感器。gydF4y2Ba
vid = videoinput (' kinect ' 1 ' RGB_640x480 ');gydF4y2Ba
看看源设备上的特定设备属性,即Kinect摄像头上的颜色传感器。gydF4y2Ba
src = getselectedsource (vid);src Display Summary for Video Source Object: General Settings: Parent = [1x1 videoinput] Selected = on SourceName = ColorSource Tag = Type = videosource Device Specific Properties:加速度计= (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 |
返回颜色和深度传感器的3-D加速度矢量。在设备运行或预览时更新数据。gydF4y2Ba 这个1 × 3的双精度表示gydF4y2Ba
代表的值gydF4y2Ba |
AutoExposuregydF4y2Ba |
用于自动设置曝光。这将控制是否激活其他相关属性。值是gydF4y2Ba在gydF4y2Ba (默认),gydF4y2Ba从gydF4y2Ba .gydF4y2Ba
|
AutoWhiteBalancegydF4y2Ba |
用于启用或禁用自动白平衡设置。gydF4y2Ba
|
BacklightCompensationgydF4y2Ba |
配置背光补偿模式,以调整相机捕捉图像,根据环境条件。gydF4y2Ba 注意,此属性仅在以下情况下有效gydF4y2Ba 值:gydF4y2Ba
|
亮度gydF4y2Ba |
表示亮度级别。取值范围为gydF4y2Ba0.0gydF4y2Ba 来gydF4y2Ba1.0gydF4y2Ba ,默认值是gydF4y2Ba0.2156gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
CameraElevationAnglegydF4y2Ba |
控制传感器镜头的角度。这是相机相对于地面的角度。取值范围为-27 ~ 27度的整数属性。默认值是最后一个设置值,因为这是一个粘性设置。只有当你想改变相机的角度时才设置它。此属性也与深度传感器共享。gydF4y2Ba |
对比gydF4y2Ba |
表示对比水平。值必须在范围内gydF4y2Ba0.5gydF4y2Ba 来gydF4y2Ba2gydF4y2Ba ,默认值为gydF4y2Ba1gydF4y2Ba .gydF4y2Ba |
ExposureTimegydF4y2Ba |
表示曝光时间,单位为万分之一秒。取值范围为gydF4y2Ba0gydF4y2Ba 来gydF4y2Ba4000gydF4y2Ba ,默认值为gydF4y2Ba0gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
FrameIntervalgydF4y2Ba |
表示帧间隔,单位为万分之一秒。取值范围为gydF4y2Ba0gydF4y2Ba 来gydF4y2Ba4000gydF4y2Ba ,默认值为gydF4y2Ba0gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
帧速率gydF4y2Ba |
每秒的帧数。此属性是只读的,颜色传感器的可能值是gydF4y2Ba12gydF4y2Ba ,gydF4y2Ba15gydF4y2Ba ,gydF4y2Ba30.gydF4y2Ba (默认)。它反映了运行时的实际帧率。gydF4y2Ba |
获得gydF4y2Ba |
表示RGB颜色值的乘数。取值范围为gydF4y2Ba1.0gydF4y2Ba 来gydF4y2Ba16.0gydF4y2Ba ,默认值为gydF4y2Ba1.0gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
γgydF4y2Ba |
表明伽马测量。值必须在范围内gydF4y2Ba1gydF4y2Ba 来gydF4y2Ba2.8gydF4y2Ba ,默认值为gydF4y2Ba2.2gydF4y2Ba .gydF4y2Ba |
色调gydF4y2Ba |
显示颜色设置。值必须在范围内gydF4y2Ba-22年gydF4y2Ba 来gydF4y2Ba22gydF4y2Ba ,默认值为gydF4y2Ba0gydF4y2Ba .gydF4y2Ba |
PowerLineFrequencygydF4y2Ba |
减少由电源线频率引起的闪烁的选项。值是gydF4y2Ba禁用gydF4y2Ba ,gydF4y2BaFiftyHertzgydF4y2Ba ,gydF4y2BaSixtyHertzgydF4y2Ba .默认值是gydF4y2Ba禁用gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
饱和gydF4y2Ba |
表明饱和水平。值必须在范围内gydF4y2Ba0gydF4y2Ba 来gydF4y2Ba2gydF4y2Ba ,默认值为gydF4y2Ba1gydF4y2Ba .gydF4y2Ba |
锐度gydF4y2Ba |
显示清晰度水平。值必须在范围内gydF4y2Ba0gydF4y2Ba 来gydF4y2Ba1gydF4y2Ba ,默认值为gydF4y2Ba0.5gydF4y2Ba .gydF4y2Ba |
WhiteBalancegydF4y2Ba |
表示颜色温度,单位为开氏度。取值范围为gydF4y2Ba2700gydF4y2Ba 来gydF4y2Ba6500gydF4y2Ba 默认是gydF4y2Ba2700gydF4y2Ba .gydF4y2Ba注意,此属性仅在以下情况下有效gydF4y2Ba |
您可以选择设置前面步骤中显示的一些属性。例如,您可能在光线较暗的情况下获取图像。你可以通过设置gydF4y2BaBacklightCompensationgydF4y2Ba
财产gydF4y2BaLowLightsPrioritygydF4y2Ba
它更倾向于光线较弱的环境。gydF4y2Ba
src。BacklightCompensation =“LowLightsPriority”;gydF4y2Ba
通过调用预览颜色流gydF4y2Ba预览gydF4y2Ba
在您创建的颜色传感器对象上。gydF4y2Ba
预览(vid);gydF4y2Ba
预览完成后,关闭预览窗口。gydF4y2Ba
closepreview (vid);gydF4y2Ba
创建gydF4y2BavideoinputgydF4y2Ba
对象为深度传感器。注意,创建了第二个对象(gydF4y2Bavid2gydF4y2Ba
),gydF4y2Ba设备编号gydF4y2Ba
2为深度传感器。gydF4y2Ba
vid2 = videoinput (' kinect ' 2 ' Depth_640x480 ');gydF4y2Ba
看看源设备上的特定设备属性,也就是Kinect上的深度传感器。gydF4y2Ba
src = getselectedsource (vid2);src Display Summary for Video Source Object: General Settings: Parent = [1x1 videoinput] Selected = on SourceName = DepthSource Tag = Type = videosource设备特定属性:Accelerometer = [0.0 -1.0 0.0] BodyPosture = Standing CameraElevationAngle = 4 DepthMode = Default FrameRate = 30 ireiter = on SkeletonsToTrack = [1x0 double] TrackingMode = offgydF4y2Ba
正如您在输出中所看到的,深度传感器有一组与骨骼跟踪相关的设备特定属性。这些特性是特定于深度传感器的。gydF4y2Ba
设备特定的属性-深度传感器gydF4y2Ba | 描述gydF4y2Ba |
---|---|
加速度计gydF4y2Ba |
返回颜色和深度传感器的3-D加速度矢量。在设备运行或预览时更新数据。gydF4y2Ba 这个1 × 3的双精度表示gydF4y2Ba
代表的值gydF4y2Ba |
BodyPosturegydF4y2Ba |
显示追踪到的骨架是站着还是坐着。值是gydF4y2Ba站gydF4y2Ba (给出20点骨架数据)gydF4y2Ba坐着gydF4y2Ba (给出10点骨架数据,使用关节索引2 - 11)。gydF4y2Ba站gydF4y2Ba 是默认的。gydF4y2Ba注意,如果gydF4y2Ba 请参阅本例最后的“身体姿势关节指数”小节,了解20个骨骼关节的指数列表。gydF4y2Ba |
CameraElevationAnglegydF4y2Ba |
控制传感器镜头的角度。这是相机相对于地面的角度。取值范围为-27 ~ 27度的整数属性。默认值是最后一个设置值,因为这是一个粘性设置。只有当你想改变相机的角度时才设置它。这个属性也与颜色传感器共享。gydF4y2Ba |
DepthModegydF4y2Ba |
表示深度图中的深度范围。值是gydF4y2Ba默认的gydF4y2Ba (范围50至400厘米)及gydF4y2Ba附近gydF4y2Ba (范围40至300厘米)。gydF4y2Ba |
帧速率gydF4y2Ba |
每秒的帧数。此属性为只读,并固定在gydF4y2Ba30.gydF4y2Ba 对于所有格式的深度传感器。它反映了运行时的实际帧率。gydF4y2Ba |
IREmittergydF4y2Ba |
控制红外发射器是否开启或关闭。值是gydF4y2Ba在gydF4y2Ba 和gydF4y2Ba从gydF4y2Ba .初始值为gydF4y2Ba在gydF4y2Ba .但是,这是一个粘性属性,所以默认值是最后设置的值。如果你把它设为gydF4y2Ba从gydF4y2Ba ,它将在以后的使用中保持关闭,直到您更改设置。gydF4y2Ba这个特性的一个优点是,当使用多个Kinect设备时,它很有用,可以避免干扰。gydF4y2Ba |
SkeletonsToTrackgydF4y2Ba |
指示作为元数据的一部分返回的骨架跟踪ID。值:gydF4y2Ba
|
TrackingModegydF4y2Ba |
表明跟踪状态。值:gydF4y2Ba
注意,如果gydF4y2Ba |
开始第二个gydF4y2BavideoinputgydF4y2Ba
对象(深度流)。gydF4y2Ba
开始(vid2);gydF4y2Ba
使用gydF4y2BagetdatagydF4y2Ba
.gydF4y2Ba
获取对象的数据。[frame, ts, metaData] = getdata(vid2);查看元数据以查看骨架数据中的参数。元数据元数据= 10x1 struct array with fields: abtime: [1x1 double] FrameNumber: [1x1 double] IsPositionTracked: [1x6 logical] IsSkeletonTracked: [1x6 logical] JointDepthIndices: [20x2x6 double] JointImageIndices: [20x2x6 double] JointTrackingState: [20x6 double] JointWorldCoordinates: [20x3x6 double][2x6 double] PositionImageIndices: [2x6 double] PositionWorldCoordinates: [3x6 double] RelativeFrame: [1x1 double] SegmentationData: [640x480 double] SkeletonTrackingID: [1x6 double] TriggerIndex: [1x1 double]gydF4y2Ba
这些元数据字段与追踪骨架有关。gydF4y2Ba
元数据gydF4y2Ba | 描述gydF4y2Ba |
---|---|
AbsTimegydF4y2Ba |
用MATLAB时钟格式表示完整时间戳(包括日期和时间)的一个1 x 1双精度浮点数。gydF4y2Ba |
FrameNumbergydF4y2Ba |
表示帧号的1 × 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和y坐标双矩阵,20个关节相对于深度图像的像素,6个可能的骨架。如果gydF4y2BaBodyPosturegydF4y2Ba 被设置为gydF4y2Ba坐着gydF4y2Ba ,这是一个10 x 2 x 6的双关节。gydF4y2Ba |
JointImageIndicesgydF4y2Ba |
如果gydF4y2BaBodyPosturegydF4y2Ba 属性设置为gydF4y2Ba站gydF4y2Ba ,这是一个20 x 2 x 6的x和y坐标的双矩阵,20个关节相对于彩色图像的像素,6个可能的骨架。如果gydF4y2BaBodyPosturegydF4y2Ba 被设置为gydF4y2Ba坐着gydF4y2Ba ,这是一个10 x 2 x 6的双关节。gydF4y2Ba |
合作局gydF4y2Ba |
这个20 x 6的整数矩阵包含了所有6个骨架的每个关节跟踪精度的枚举值。值包括:gydF4y2Ba
|
JointWorldCoordinatesgydF4y2Ba |
20个关节的x, y, z坐标的20 × 3 × 6双矩阵,距离传感器几米,六个可能的骨架,如果gydF4y2BaBodyPosturegydF4y2Ba 被设置为gydF4y2Ba站gydF4y2Ba .如果设置为gydF4y2Ba坐着gydF4y2Ba ,这是一个10 × 3 × 6的双关节。gydF4y2Ba有关如何查看该数据的语法,请参见步骤9。gydF4y2Ba |
PositionDepthIndicesgydF4y2Ba |
每个骨架相对于深度图像的像素x和Y坐标的2 x 6双矩阵。gydF4y2Ba |
PositionImageIndicesgydF4y2Ba |
每个骨架相对于彩色图像的x和Y坐标的2 x 6双矩阵。gydF4y2Ba |
PositionWorldCoordinatesgydF4y2Ba |
一个3×6双矩阵的X,Y和Z坐标,每个骨架相对于传感器为单位。gydF4y2Ba |
RelativeFramegydF4y2Ba |
如果使用触发器,这个1 × 1 double表示相对于触发器执行的帧数。gydF4y2Ba |
SegmentationDatagydF4y2Ba |
图像大小双数组,每个像素映射到跟踪/检测骨架,用数字1到6表示。这个分割图是一个位图,其像素值对应于视场中在该像素位置最接近相机的人的索引。值为0表示没有跟踪骨架。gydF4y2Ba |
SkeletonTrackingIDgydF4y2Ba |
这个1 x 6的整数矩阵包含了所有6个骨架的跟踪id。这些id追踪特定的骨架,使用gydF4y2BaSkeletonsToTrackgydF4y2Ba 属性。gydF4y2Ba跟踪ID由Kinect生成,并从采集到采集的变更。gydF4y2Ba |
TriggerIndexgydF4y2Ba |
如果使用触发器,则表示与该事件关联的触发器的一个1 × 1双变量。gydF4y2Ba |
通过深入元数据查看任何单独的属性。例如,看看gydF4y2BaIsSkeletonTrackedgydF4y2Ba
财产。gydF4y2Ba
元数据。IsSkeletonTracked ans = 1 0 0 0gydF4y2Ba
在这种情况下,数据显示,在六具可能的骨骼中,有一具骨骼正在被追踪,它位于第一个位置。如果你有多个骨架,这个属性可以用来确认哪些骨架正在被跟踪。gydF4y2Ba
在世界坐标中获得第一个人的关节位置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.84251.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.5896
这些列代表了骨架1上20个点的X、Y和Z坐标,单位为米。gydF4y2Ba
可选地查看分割数据作为一个图像。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