You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BlinkID iOS SDK如何获取证件裁剪矫正图与未裁剪原图?

解决BlinkID获取未裁剪正面原始图像的问题

核心配置与获取逻辑

你混淆了fullDocumentImage和原始相机帧的配置逻辑,要拿到未裁剪的原始正面图像,得单独启用原始帧采集相关配置,而非仅依赖returnFullDocumentImage:

1. 启用原始相机帧采集

初始化扫描识别器(比如BlinkIdSingleSideRecognizer或对应证件的识别器)时,必须设置returnCameraFrame = true,这个参数才是控制是否返回未处理原始相机帧的关键:

// 示例:单面证件识别器配置
let recognizer = BlinkIdSingleSideRecognizer()
// 保留原有配置,用于获取处理后的裁剪矫正图
recognizer.returnFullDocumentImage = true
recognizer.encodeFullDocumentImage = true
// 新增配置,开启原始相机帧返回
recognizer.returnCameraFrame = true

2. 正确读取原始帧数据

在扫描结果回调中,不要访问frontCameraFrame(该属性仅在部分特定识别器/Overlay中存在),应从识别器结果的cameraFrame属性获取:

func didOutput(results: [RecognizerResult]) {
    guard let result = results.first as? BlinkIdSingleSideRecognizerResult else { return }
    
    // 获取处理后的裁剪矫正图(原需求)
    let processedFrontImage = result.fullDocumentFrontImage?.image
    
    // 获取未裁剪的原始相机帧
    if let rawCameraFrame = result.cameraFrame?.image {
        // 此处即为所需的未处理原始UIImage
    }
}

3. 适配旧版本差异

若你的BlinkID版本较旧,returnCameraFrame可能需要在RecognizerSettings层级配置,而非直接在识别器实例上设置:

let settings = BlinkIdOverlaySettings()
settings.returnCameraFrame = true
// 将配置关联到扫描控制器

常见误区说明

  • fullDocumentFrontImage的设计目标就是返回裁剪后的证件区域图,无论如何配置都不会返回全帧原始图,它的作用是提供已处理好的证件图像
  • frontCameraFrame并非通用属性,仅在部分特定场景下可用,通用获取方式是读取识别器结果的cameraFrame

内容的提问来源于stack exchange,提问作者Mapedd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 18:41:05