展讯FOV配置
程序员文章站
2022-07-14 10:00:34
...
最近展讯项目测试verfier fov fail,测试的值78.52,但是显示的是74.52,修改fov驱动.于是咨询驱动同事,了解了解决方法.记录如下.
- 找到对应驱动文件
vendor/sprd/modules/libcamera/sensor/sensor_drv/classic/Samsung/s5k4e6sub/sensor_s5k4e6_mipi_raw.h
其中有这个结构
static SENSOR_STATIC_INFO_T s_gc5025_static_info[VENDOR_NUM] = {
{.module_id = MODULE_SUNNY,
.static_info = {
.f_num = 200,
.focal_length = 354,
.max_fps = 30,
.max_adgain = 8,
.ois_supported = 0,
.pdaf_supported = 0,
.exp_valid_frame_num = 1,
.clamp_level = 64,
.adgain_valid_frame_num = 1,
.fov_info = {{2.90304f, 2.17728f}, 2.2697f}} // 2.3686
}
/*If there are multiple modules,please add here*/
};
其中fov_info就是我们应该修改的地方
1.camera硬件信息和测试角度
Effective Pixel | 2592(H) * 1944(V) |
---|---|
Pixel size | 1.34um * 1.34um |
上面.fov_info = {{X, Y},Z}}这个结构,x表示宽度,y表示高度,z表示到屏幕距离,如下图所示.degre表示测试出来的角度,比如我测试的角度是78.52
像素 | 2592(H) | 1944(V) |
---|---|---|
1像素大小 | 1.34um | 1.34um |
所以有如下公式:
x = 像素宽度* 横向像素 = 1.34 * 2592 / 1000 = 3.4786f
y =像素高度* 纵向像素 = 1.34 * 1944 / 1000 = 2.6050f
夹角正切公式:
tan(0.5 * degree) = 0.5 X / Z
Z = 0.5* X / tan(0.5 * degree) = 3.4786f * 0.5 / 0.817 = 2.1288
故:
.fov_info = {{3.4786f, 2.605f}, 2.1288f}}
其中X,是不变的,Z值是根据测试角度求出来的,可以看到degree越大.Z越小.可以根据这个微调.
上一篇: ArcGIS Engine - 图层渲染