ISP图像处理——紫边Purple Fringing检测
之前写过文章记紫边的形成原因,以下小结改善方法
图像紫边存在数码相机、监控摄像头等数字成像图像,使用设备在逆光、大光圈条件下拍摄图像的高反差区域容易出现紫边,解决图像自编问题有助设备得到完美图像。
紫边成因分析和确定有助与紫边消除的图像处理算法研究和摄像设备工程改进,能够改善自编的硬件成本更高,非常需要研究去除紫边的图像处理算法。
紫边
通过取色器中对“紫边”的色彩分析,可以发现,大部分紫边的主要构成就是洋红,这些紫边是由于高反差大背光静物边缘,产生光学衍射,加上DC/DV的CCD在色彩插值导致。
因为人对红、绿、蓝三种颜色的中绿分量比较敏感,大多sensor的bayer排列大多采样绿分量比较多,例如RGGB排列。
绿色采样结果比较多,相比红色和蓝色通道来说不容易发生混叠,而红蓝分量组合后表现为洋红色,与取色器的表现接近。
硬件改善紫边(镜头、sensor)
尽量选择低色差的镜头,验证色差曲线。sensor选择像元面积较大,保证光入射角度较大,亦可以规避shading问题。
算法改善
在RGB域检测紫边
高亮区域检测
首先对R、G、B分别设置固定的亮度阈值,把图像分为很多块,精确一点可以选择5*5
大小的邻域,粗糙一点可以选13*13
,判断邻域内每一个像素点的R、G、B值是否超过R、G、B初设亮度阈值(可能不同),邻域内超过R、G、B初设亮度阈值的像素记录数目分别为RNum、GNum、BNum,,当RNum、GNum、BNum同时满足>设定的高亮区域像素数阈值(R、G、B三通道可能不同)时,判定该区域为高亮区域。边缘区域检测
既可以使用常用的边缘检测算子Roberts 梯度算子、拉普拉斯梯度算子等,也可以分析像素区域方差趋势来判断是否属于边缘。统计区域内像素方差,判断方差值与初设方差阈值的大小,只有大于该阈值的区域才被认为是边缘。
满足以上高亮和边缘区域多个条件的像素可以认为是紫边。
矫正紫边
紫边区域紫色饱和度淡化,具体措施不晓得,再看看文献好了
我的个人博客主页,欢迎访问
我的CSDN主页,欢迎访问
我的GitHub主页,欢迎访问
ISP图像处理——紫边Purple Fringing检测的更多相关文章
- Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结 1.1. 五中滤镜的分别效果..1 1.2. 基于肤色的图片分类1 1.3. 性能提升2 1.4. --co ...
- ISP图像处理&&相机系统
如何理解 ISO.快门.光圈.曝光这几个概念? 摄影基础篇——彻底弄清光圈.快门与ISO 理解这三个参数各自都是如何控制进入的光线量: 快门速度一般的表示方法是1/100s.1/30s.2s: 小的“ ...
- 【图像处理】Haar Adaboost 检测自定义目标(视频车辆检测算法代码)
阅读须知 本博客涉及到的资源: 正样本:http://download.csdn.net/detail/zhuangxiaobin/7326197 负样本:http://download.csdn.n ...
- ISP图像处理算法之---Demosaic
目前市场上主流传感器为Coms传感器,sensor出来的的数据格式为bayer数据格式,这种格式,每个像素点只有三个颜色通道中的一个,如图1所示 ...
- Halcon编程-基于纹理的mara检测
表面瑕疵检测是机器视觉领域非常重要的一个应用.机器视觉是集光学.机电和计算机三个领域的一门不算新的技术.但目前表面瑕疵检测在学界主要是计算机专业或者控制专业瞄准图像处理方向在做,而视觉光学系统这一块主 ...
- OpenCV 学习笔记03 直线和圆检测
检测边缘和轮廓不仅重要,还经常用到,它们也是构成其他复杂操作的基础. 直线和形状检测与边缘和轮廓检测有密切的关系. 霍夫hough 变换是直线和形状检测背后的理论基础.霍夫变化是基于极坐标和向量开展的 ...
- 人脸检测学习笔记(数据集-DLIB人脸检测原理-DLIB&OpenCV人脸检测方法及对比)
1.Easily Create High Quality Object Detectors with Deep Learning 2016/10/11 http://blog.dlib.net/201 ...
- 夜晚场景图像ISP增强算法
夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 系数(2 ...
- (四)HXDZ-30102-ACC检测心率血氧数据并通过串口助手显示
主要参考模块说明书 写在前面的话 硬件原理我是真的搞不明白,所以心率血氧传感器数据检测就是模块卖家自带的代码... 我使用HXDZ-30102-ACC传感器也是偶然在网上检索到的,集成心率血氧和三轴加 ...
- PPP协议
PPP协议PPP协议是二层(数据链路层)协议,常用于拨号上网时客户端向服务器获取IP地址.PPP支持在各种物理类型的点对点串行线路上传输上层协议报文.它具有很多特性,比如支持多协议.提供可选的身份认证 ...
随机推荐
- [Go] 递归获取目录下的文件
操作示例: ./scan /Document/dir 代码: // 定义递归文件树结构体 type treeList struct { Path string `json:"path&quo ...
- 【Spring】SpringSecurity的使用
4 SpringSecurity 只需要协助SpringSecurity创建好用户对应的角色和权限组,同时把各个资源所要求的权限信息设定好,剩下的像 "登录验证"."权限 ...
- 麻了,不要再动不动就BeanUtil.copyProperties!!!
前言 最近项目上要求升级一个工具包hutool的版本,以解决安全漏洞问题,这不升级还好,一升级反而捅出了更大的篓子,究竟是怎么回事呢? 事件回顾 我们项目原先使用的hutool版本是5.7.2,在代码 ...
- vue2中使用composition-api
vue2中使用composition-api https://juejin.cn/post/6874927606820274184 vue3.0 watch 函数 https://www.jiansh ...
- Python-BeautifulReport的简单使用
一.简介 BeautifulReport.report report ( filename -> 测试报告名称, 如果不指定默认文件名为report.html description -> ...
- python自产调试工具pdb的使用
python自产调试工具pdb的使用 介绍 调试打印在写代码的时候不可避免 项目越大,调试可能花的时间会越多 print调试可能是最早用的,一段时间内你都会习惯这种方式 一旦成了老鸟,你应该会去用ID ...
- 2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru
2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法. 宏使用如下: #[derive(Builder)] pub stru ...
- 2020-11-23:go中,s是一个字符串,s[0]代表什么?是否等于固定字节数?
福个答案2020-11-23:Golang 的字符串(string)是合法的 UTF-8 序列,这就涉及到了两种不同的遍历方式,一种是按照 Unicode 的 codepoint 遍历,另一种是把 s ...
- drf序列化器之反序列化的数据验证
模型层 from django.db import models # Create your models here. class Manufacturer(models.Model): ## 厂商 ...
- Serverless冷扩机器在压测中被击穿问题
一.现象回顾 在今天ForceBot全链路压测中,有位同事负责的服务做Serverless扩容(负载达到50%之后自动扩容并上线接入流量)中,发现新扩容的机器被击穿,监控如下(关注2:40-3:15时 ...