ARFrame

ARFrame (AR 会话中的一帧数据) 属性 (具体数据特征) 具体参数 描述
ARFrame camera (相机信息) transform (位置和方向) simd_float4x4:表示相机在 3D 空间中的位置和方向,包含平移和旋转信息。
intrinsics (内参矩阵) simd_float3x3:相机内参矩阵,描述镜头的焦距和图像中心,用于从 3D 坐标到 2D 图像的投影。
anchors (锚点信息) count (锚点数量) Int:当前帧中锚点的数量,表示虚拟物体的数量,帮助开发者了解场景的复杂性。
identifier (唯一标识符) UUID:锚点的唯一标识符,用于区分不同的虚拟对象,使得每个对象能够被独立跟踪和管理。
transform (锚点变换) simd_float4x4:表示该锚点在 3D 空间中的位置和方向,类似于相机变换。
lightEstimate (光照估计) ambientIntensity (环境光强度) Float:当前环境的光照强度(以勒克斯为单位),用于调整虚拟物体的光照效果,使其看起来更加自然。
ambientColorTemperature (光色温) Float:环境光的色温(以开尔文为单位),影响物体的渲染色彩和真实感,帮助改善虚拟与现实的融合。
capturedImage (捕获的图像) capturedImage (原始图像数据) CVPixelBuffer:当前帧的原始图像数据,包含摄像头捕获的画面,可用于进行图像处理或后续渲染。
timestamp (时间戳) timestamp (捕获时间) TimeInterval:该帧捕获的时间,通常以秒为单位,方便进行时间相关的处理或同步。
worldMappingStatus (世界映射状态) worldMappingStatus (环境理解状态) ARFrame.WorldMappingStatus:表示 ARKit 对环境理解的状态(如 .notAvailable.limited.extending.mapped),指示 AR 会话的质量和稳定性。
detectedBody (检测到的身体) detectedBody (人体数据) ARBody2D?ARBodyAnchor?:如果检测到人体骨架,返回相关数据(如身体位置和姿势),否则为 nil,可用于与用户进行交互。
segmentationBuffer (分割图像) segmentationBuffer (图像分割数据) CVPixelBuffer?:表示当前场景的分割图像,用于区分不同区域(如前景和背景),帮助提高渲染效果和视觉真实感。
depthData (深度数据) depthData (深度信息) AVDepthData?:场景的深度信息,提供距离数据,用于计算虚拟物体与现实世界之间的遮挡效果,增强 AR 体验的真实感。

ARBody2D 的人体节点信息如下
let skeleton = body.skeleton
for na in skeleton.definition.jointNames
{
print("--->(na)")
}
空间位置信息 : skeleton.jointLandmarks
--->head_joint
--->neck_1_joint
--->right_shoulder_1_joint
--->right_forearm_joint
--->right_hand_joint
--->left_shoulder_1_joint
--->left_forearm_joint
--->left_hand_joint
--->right_upLeg_joint
--->right_leg_joint
--->right_foot_joint
--->left_upLeg_joint
--->left_leg_joint
--->left_foot_joint
--->right_eye_joint
--->left_eye_joint
--->root
--->right_ear_joint
--->left_ear_joint

以上表格json化


{
    "ARFrame": {
        "description": "AR 会话中的一帧数据",
        "attributes": [
            {
                "name": "camera",
                "description": "相机信息",
                "subAttributes": [
                    {
                        "name": "transform",
                        "type": "simd_float4x4",
                        "description": "表示相机在 3D 空间中的位置和方向,包含平移和旋转信息。"
                    },
                    {
                        "name": "intrinsics",
                        "type": "simd_float3x3",
                        "description": "相机内参矩阵,描述镜头的焦距和图像中心,用于从 3D 坐标到 2D 图像的投影。"
                    }
                ]
            },
            {
                "name": "anchors",
                "description": "锚点信息",
                "subAttributes": [
                    {
                        "name": "count",
                        "type": "Int",
                        "description": "当前帧中锚点的数量,表示虚拟物体的数量,帮助开发者了解场景的复杂性。"
                    },
                    {
                        "name": "identifier",
                        "type": "UUID",
                        "description": "锚点的唯一标识符,用于区分不同的虚拟对象,使得每个对象能够被独立跟踪和管理。"
                    },
                    {
                        "name": "transform",
                        "type": "simd_float4x4",
                        "description": "表示该锚点在 3D 空间中的位置和方向,类似于相机变换。"
                    }
                ]
            },
            {
                "name": "lightEstimate",
                "description": "光照估计",
                "subAttributes": [
                    {
                        "name": "ambientIntensity",
                        "type": "Float",
                        "description": "当前环境的光照强度(以勒克斯为单位),用于调整虚拟物体的光照效果,使其看起来更加自然。"
                    },
                    {
                        "name": "ambientColorTemperature",
                        "type": "Float",
                        "description": "环境光的色温(以开尔文为单位),影响物体的渲染色彩和真实感,帮助改善虚拟与现实的融合。"
                    }
                ]
            },
            {
                "name": "capturedImage",
                "description": "捕获的图像",
                "subAttributes": [
                    {
                        "name": "capturedImage",
                        "type": "CVPixelBuffer",
                        "description": "当前帧的原始图像数据,包含摄像头捕获的画面,可用于进行图像处理或后续渲染。"
                    }
                ]
            },
            {
                "name": "timestamp",
                "description": "时间戳",
                "subAttributes": [
                    {
                        "name": "timestamp",
                        "type": "TimeInterval",
                        "description": "该帧捕获的时间,通常以秒为单位,方便进行时间相关的处理或同步。"
                    }
                ]
            },
            {
                "name": "worldMappingStatus",
                "description": "世界映射状态",
                "subAttributes": [
                    {
                        "name": "worldMappingStatus",
                        "type": "ARFrame.WorldMappingStatus",
                        "description": "表示 ARKit 对环境理解的状态(如 .notAvailable、.limited、.extending 和 .mapped),指示 AR 会话的质量和稳定性。"
                    }
                ]
            },
            {
                "name": "detectedBody",
                "description": "检测到的身体",
                "subAttributes": [
                    {
                        "name": "detectedBody",
                        "type": "ARBody2D? 或 ARBodyAnchor?",
                        "description": "如果检测到人体骨架,返回相关数据(如身体位置和姿势),否则为 nil,可用于与用户进行交互。"
                    }
                ]
            },
            {
                "name": "segmentationBuffer",
                "description": "分割图像",
                "subAttributes": [
                    {
                        "name": "segmentationBuffer",
                        "type": "CVPixelBuffer?",
                        "description": "表示当前场景的分割图像,用于区分不同区域(如前景和背景),帮助提高渲染效果和视觉真实感。"
                    }
                ]
            },
            {
                "name": "depthData",
                "description": "深度数据",
                "subAttributes": [
                    {
                        "name": "depthData",
                        "type": "AVDepthData?",
                        "description": "场景的深度信息,提供距离数据,用于计算虚拟物体与现实世界之间的遮挡效果,增强 AR 体验的真实感。"
                    }
                ]
            }
        ]
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容