要将 landmarks 的坐标点赋值到 obs_body_ios_t 结构体中的 joints 数组,我们可以在遍历过程中创建一个 obs_body_ios_t 对象,并将每个 landmark 转换为 obs_joint_ios_t 类型。以下是如何进行这一操作的示例代码:
// 假设 landmarks 是 PoseLandmarkerResult 中的地标数组
for poseLandmarks in landmarks {
    // 创建一个 obs_body_ios_t 实例
    var body = obs_body_ios_t()
    body.id = /* 根据需要设置 ID */
    body.score = /* 根据需要设置分数 */
    // 遍历每个 landmark,将其坐标点赋值给 joints 数组
    for (index, landmark) in poseLandmarks.enumerated() {
        guard index < 18 else { break } // 确保不超过 joints 数组的大小
        // 将 landmark 转换为 obs_joint_ios_t
        let joint = obs_joint_ios_t(x: Float(landmark.x), y: Float(landmark.y), score: Float(1.0)) // 假设 score 为 1.0 或根据实际情况设置
        
        // 将 joint 添加到 joints 数组中
        body.joints[index] = joint
    }
    // 此处可以根据需要处理 body,例如存储或传递给其他函数
}
说明:
- 循环遍历:外层循环遍历所有姿势地标,内层循环遍历每个姿势地标中的具体关键点。
 - 确保索引有效性:我们使用 
guard index < 18 else { break }来确保不会越界访问joints数组,这样可以避免运行时错误。 - 赋值:对于每个关键点,创建一个新的 
obs_joint_ios_t实例并赋值,然后将其存储在对应的body.joints中。 
请根据你项目的具体需求调整字段的赋值逻辑,如 ID 和得分等。
内容由零声教学AI助手提供,问题来源于学员提问


        
        
        
        
        
        
        
        
        
                
                
                
                
                
                
                