项目中用到的OV9712d Sensor,因为产品结构的问题,采用的是小镜头模组,不带滤光片,所以在傍晚时分的低色温情况下,视频画面80%呈绿色;白天时分高色温环境下,视频画面70%以上呈蓝色,这种偏色使监控画面看起来很奇怪。

这主要是因为:可见光的光谱成分随色温变化而变化,在低色温光源下,白色物体偏红,在高色温光源下,白色物体偏蓝。人眼可根据大脑的判断,识别物体的真实颜色,所以看起来偏色了。

海思SDK中已经提供了ISP的WB(White Balance)白平衡算法。

AWB 算法的功能是降低外界光源对物体真实颜色的影响,使得我们采集的颜色信息转变为在理想日光光源下的无偏色信息。

色温:色温是按绝对黑体来定义的,光源的辐射在可见区和绝对黑体的辐射完全相同时,此时黑体的温度就称此光源的色温。

白平衡:在不同色温的光源下,白色会偏蓝或偏红。白平衡算法通过调整 R, G, B三个颜色通道的强度,使白色真实呈现。

AWB模块有硬件的 WB 统计信息模块及 AWB 控制策略算法 fireware 两部分组成。ISP的 WB 统计信息模块统计 sensor 输出的 R, G, B 三个颜色通道的平均比值。可提供整幅图像加权后的比值,还可提供将整幅图像分成 M*N 区块的每个区块的比值。支持将图像分成 M*N(M 行 N 列)区域,统计每个区域的G/R,G/B 均值以及参与统计的白点个数。

海思SDK库中提供的AWB 控制接口如下:

HI_MPI_ISP_SetWBType:设置白平衡类型

HI_MPI_ISP_GetWBType:获取白平衡类型

HI_MPI_ISP_GetAWBAttr:设置自动白平衡属性

HI_MPI_ISP_GetAWBAttr:获取自动白平衡属性

HI_MPI_ISP_SetMWBAttr:设置手动白平衡属性

HI_MPI_ISP_GetMWBAttr:获取手动白平衡属性

HI_MPI_ISP_SetAWBAlgType:设置白平衡算法类型

HI_MPI_ISP_GetAWBAlgType:获取白平衡算法类型

HI_MPI_ISP_SetAdvAWBAttr:设置 ADV 白平衡算法属性

HI_MPI_ISP_GetAdvAWBAttr:获取 ADV 白平衡的属性

HI_MPI_ISP_SetLightSource:设置独立光源点属性

HI_MPI_ISP_GetLightSource:获取独立光源点属性

typedef struct hiISP_ADV_AWB_ATTR_S

{

HI_BOOL bAccuPrior;

HI_U8 u8Tolerance;

HI_U16 u16CurveLLimit;

HI_U16 u16CurveRLimit;

HI_BOOL bGainNormEn;

ISP_AWB_IN_OUT_ATTR_S stInOrOut;

ISP_AWB_CT_LIMIT_ATTR_S stCTLimit;

} ISP_ADV_AWB_ATTR_S;

以上结构体用来控制和调节ISP的白平衡效果,其中:

bAccuPrior:  使能后,可提升室内普通场景白平衡精度。混合光源,大面积纯色,室外等场景建议关闭。

u16CurveLLimit:  对色温曲线的左侧宽度做限制。取值范围为[0x0, 0xFF],取值越小,可支持的光源范围越宽,白平衡精度稍有下降。

u16CurveRLimit:  对色温曲线的右侧宽度做限制。取值范围为[0x100, 0xFFF],取值越大,可支持的光源范围越宽,白平衡精度稍有下降。

u16CurveLLimit: 取值<=0x100, u16CurveRLimit 取值>=0x100。u16CurveLLimit 参数可以排除绿色块的干扰,u16CurveRLimit 参数可以排除红色、蓝色块的干扰。

所以,根据当前环境的色温情况,调节u16CurveLLimit 和u16CurveRLimit的值,即可调节图像偏绿、偏红或者偏蓝的情况,使视频画面最大程度的达到真实的效果。

图像经过AWB调节过后,颜色值要好很多,多次调整色温曲线的宽度值后,颜色基本接近正常。

HI3518视频画面偏色解决办法小记相关推荐

  1. Coursera视频无法播放解决办法

    Coursera视频无法播放解决办法 用管理员权限打开hosts文件,文件地址如下:C:Windows\systems32\drivers\etc 在hosts文件下添加一行:13.249.130.1 ...

  2. vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法

    vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法 配置和启用海康插件详情看本人博客 链接:https://blog.csdn.net/jinglianglove/article/de ...

  3. Premiere 新建项目导入视频后 视频花屏解决办法

    最近发现有的电脑用Adobe Premiere Pro新建项目后,导入视频到序列中,在预览视频时花屏,看不清画面 原因是:显卡驱动和渲染程序[Mercury playback Engine GPU加速 ...

  4. chrome观看flash视频卡死的解决办法

    原文:http://hi.baidu.com/haowarld/item/e226560522dd8423a1312d77 chrome是我的默认浏览器,看视频又是上网必不可少的.但是chrome的静 ...

  5. 关于Chrome播放视频黑屏解决办法。

    安装完系统,安装了chrome.可是看视频却发现一篇漆黑... 没想到啊,没想到.解决办法折磨简单. 关闭硬件加速. 后面图片咋上传不了啊! 转载于:https://my.oschina.net/sk ...

  6. 机动战士敢达ol服务器链接中断,机动战士敢达OL延迟掉线画面卡解决办法

    最近有些玩家反映自己在玩<机动战士敢达OL>的时候会出现延迟.掉线.画面卡的问题,这些问题显然比较麻烦.不过官方已经公布了正确的解决办法,一起随我们看看吧! 一.如果您在游戏时候出现了延迟 ...

  7. 电脑视频声音小解决办法

    平时我们在看视频时,会发现有些视频声音贼小,比如某盘,那么如何解决呢?这里提供一种简单的解决办法. 下载edge浏览器.(如果有则不用下载)点击,选择自己合适的版本下载 搜索外部扩展,安装外部扩展组件 ...

  8. 马克斯采集土豆视频失败的解决办法:曲线采集

    用马克斯采集土豆视频的时候出现了一些问题,最终导致采集失败了.究其原因是因为 在写采集规则的时候写不出能正确获取到待采集内容页也的正确地址的规则. 下面是采集目标网站的视频列表页的一个视频的列表代码: ...

  9. Ubuntu 20.04 画面撕裂解决办法

    Ubuntu 20.04画面撕裂的解决办法 这两天用笔记本装了ubnutu20.041,在设置里安装了推荐的n卡驱动.在日常使用过程中浏览网页会出现画面的撕裂感,在拖动窗口时也会出现.在网上多次搜索无 ...

最新文章

  1. 遇事不责怪别人,换位思考能成全更好的自己
  2. 深度学习崛起十年:“开挂”的OpenAI革新者
  3. dropdownlist绑定的二种方法
  4. 一些SqlServer常见和入门操作
  5. qstring 字符相同 不相等_我的编程手册 -- Java 基础篇·字符串 String
  6. android jni调用so库
  7. 1034. 有理数四则运算(20)-PAT乙级真题
  8. mysql5.7.20官方文档,MySql 5.7.20安装及data和my.ini文件的配置
  9. CentOS下Storm 1.0.0集群安装具体解释
  10. hibernate_使用c3p0连接池配置
  11. Camera_Hal3_User_Manual
  12. 如何把Netflix数据集转换成Movielens格式?
  13. system.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放
  14. Craps小游戏简单代码实现
  15. 商城小程序的一些功能介绍以及搭建教程
  16. 一文多图搞定制作自己的VOC数据集+使用yolov4训练自己的数据集+封装video测试脚本(基于ubuntu)
  17. 自制COCO 实例分割dataset并测试效果(从采集到测试)
  18. GPS理论知识NMEA 0813协议
  19. Android之——常用手机号码功能
  20. HAL库之SYSTICK时钟频率探究-F407

热门文章

  1. 微信表情图像代表什么意思_微信表情图是什么意思
  2. 常见开源协议横向对比
  3. 【插件】打造属于自己的cnpm/npm安装,生成自定义项目架构
  4. 分清ASP.NET AJAX中的Extender和Behavior模型
  5. 首页惨遭降权 台州SEO的一次惨痛优化失误经历
  6. 【汇智学堂】-python小游戏(太空阻击之六-上下左右移动战机)
  7. M1 芯片 Mac 配置 Flutter 开发环境
  8. c++ acm题目1057 DNA培养问题
  9. obs-studio模块简介与源码编译
  10. dell服务器硬盘的状态变成外来(foreign)命令行修复