Ios 摄像头参数-iPhone7

Ios 摄像头参数-iPhone7,ios,iphone,opencv,Ios,Iphone,Opencv,大家晚上好,斯塔克沃夫的朋友们 很长一段时间以来,我一直试图找到精确的数据来计算焦距参数,但都失败了 以下是我目前得到的信息: iPhone 7 Sensor width: 3.99mm Focal length: 7.21mm Random image: 400x400 计算: 焦点(像素)=图像宽度(像素)*焦点(毫米)/传感器宽度(毫米) focal=400*7.21/3.99 但这一结果看起来非常不准确。有什么我遗漏的吗?本页()为您提供了每种型号iPhone摄像头的规格 您还可以使用

大家晚上好,斯塔克沃夫的朋友们

很长一段时间以来,我一直试图找到精确的数据来计算焦距参数,但都失败了

以下是我目前得到的信息:

iPhone 7
Sensor width: 3.99mm
Focal length: 7.21mm
Random image: 400x400
计算:

焦点(像素)=图像宽度(像素)*焦点(毫米)/传感器宽度(毫米)

focal=400*7.21/3.99

但这一结果看起来非常不准确。有什么我遗漏的吗?

本页()为您提供了每种型号iPhone摄像头的规格

您还可以使用以下代码在拍照时获取相机的规格

private func getCaptureDeviceSpec(_ videoDevice : AVCaptureDevice?) {
    if let deviceFormats = videoDevice?.formats {
        var width : Float = 0
        var height : Float = 0
        var fov : Float = 0
        for format in deviceFormats {
            if let deviceFormat = (format as? AVCaptureDeviceFormat) {
                let dim = deviceFormat.highResolutionStillImageDimensions
                if width < Float(dim.width) && height < Float(dim.height) {
                    width = Float(dim.width)
                    height = Float(dim.height)
                    fov = deviceFormat.videoFieldOfView
                }
            }
        }
        cameraSpec.width = width
        cameraSpec.height = height
        cameraSpec.fov = fov
    }
}
private func getCaptureDeviceSpec(\uVideoDevice:AVCaptureDevice?){
如果let deviceFormats=视频设备?格式{
变量宽度:Float=0
变量高度:Float=0
变量fov:Float=0
对于deviceFormats中的格式{
如果let deviceFormat=(格式为?AVCaptureDeviceFormat){
设dim=设备格式高分辨率至图像尺寸
如果宽度<浮动(尺寸宽度)和高度<浮动(尺寸高度){
宽度=浮动(尺寸宽度)
高度=浮动(尺寸高度)
fov=设备格式。视场视图
}
}
}
cameraSpec.width=宽度
cameraSpec.height=高度
cameraSpec.fov=fov
}
}

回答这个问题后,我意识到你实际上可以使用
videoDevice.activeFormat
而不是搜索所有可用的格式。