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
而不是搜索所有可用的格式。