【阅读笔记】基于图像灰度梯度最大值累加的清晰度评价算子

本文介绍的是一种新的清晰度评价算子,基于图像灰度梯度最大值累加

一、概述

目前在数字图像清晰度评价函数中常用的评价函数包括三类:灰度梯度评价函数、频域函数和统计学函数,其中灰度梯度评价函数具有计算简单,评价效果好等优点.经典清晰度评价函数和大多数改进的图像清晰度评价函数在评价过程中较少考虑噪音影响,从而使图像清晰度评价函数出现评价不准,甚至出现多峰等现象,影响自动聚焦效果。

实际光学成像系统相当于一个低通滤波器,其截止频率与离焦程度有关,离焦越严重,截止频率越低,反之越高.对应到图像清晰度表现为图像高频成分越高,图像细节越清楚,图像清晰度越高,反之则图像越模糊,图像清晰度越低.图像高频成分对应到空域上为图像灰度梯度,所以灰度梯度与图像清晰度正相关.

二、清晰度评价算子特性

2.1 无偏性:

清晰度评价函数曲线的峰值应该对应最清晰的聚焦的位置,不同离焦程度的评价值也对应着不同的离焦图像采集位置。

2.2 单峰性:

从远离准焦面到正焦面再到远离准焦面的过程中,聚焦评价函数曲线对应地先递增再递减,准确聚焦位置时取值最大,应该满足单峰性要求。

2.3 灵敏度:

评价函数曲线的陡峭程度反映了自动聚焦过程中的灵敏度,若曲线越平缓,则灵敏度越低。自动聚焦过程中希望有较高的灵敏度,曲线应该有一定的陡峭度。

2.4 抗噪性:

在噪声干扰下,曲线是否依旧能保持较好的形状特性。

2.5 实时性:

我们希望自动聚焦的过程是一个较为短暂的时间,为满足自动聚焦系统实时性的要求,设计的算法不能过于复杂,计算量不能太大。

三、算法过程

3.1 EOG函数平方梯度

F E O G = ∑ i , j ( ∣ f ( i , j ) − f ( i , j − 1 ) ∣ 2 + ∣ f ( i , j ) − f ( i − 1 , j ) ∣ 2 ) F_{EOG}=\sum_{i,j}(\lvert f(i,j)-f(i,j-1) \rvert ^2 +\lvert f(i,j)-f(i-1,j) \rvert ^2) FEOG=i,j(∣f(i,j)f(i,j1)2+f(i,j)f(i1,j)2)

3.2 Laplace算子梯度函数

Laplace算子函数

F L a p l a c e = ∑ i , j ∣ f ( i − 1 , j ) − f ( i + 1 , j ) + f ( i , j − 1 ) − f ( i , j + 1 ) − 4 f ( i , j ) ∣ 2 F_{Laplace}=\sum_{i,j}\lvert f(i-1,j)-f(i+1,j) + f(i,j-1)-f(i,j+1) - 4f(i,j) \rvert ^2 FLaplace=i,jf(i1,j)f(i+1,j)+f(i,j1)f(i,j+1)4f(i,j)2

3.3 基于图像灰度梯度最大值累加

求表像素 f ( i , j ) f(i,j) f(i,j)灰度与其相邻8个像素灰度之间的梯度关系,并求最大灰度梯度。

T 1 = ∣ f ( i − 1 , j − 1 ) − f ( i , j ) ∣ T1=\lvert f(i-1,j-1)-f(i,j)\rvert T1=f(i1,j1)f(i,j)∣
T 2 = ∣ f ( i − 1 , j ) − f ( i , j ) ∣ T2=\lvert f(i-1,j)-f(i,j)\rvert T2=f(i1,j)f(i,j)∣
T 3 = ∣ f ( i − 1 , j + 1 ) − f ( i , j ) ∣ T3=\lvert f(i-1,j+1)-f(i,j)\rvert T3=f(i1,j+1)f(i,j)∣
T 4 = ∣ f ( i , j − 1 ) − f ( i , j ) ∣ T4=\lvert f(i,j-1)-f(i,j)\rvert T4=f(i,j1)f(i,j)∣
T 5 = ∣ f ( i , j + 1 ) − f ( i , j ) ∣ T5=\lvert f(i,j+1)-f(i,j)\rvert T5=f(i,j+1)f(i,j)∣
T 6 = ∣ f ( i + 1 , j − 1 ) − f ( i , j ) ∣ T6=\lvert f(i+1,j-1)-f(i,j)\rvert T6=f(i+1,j1)f(i,j)∣
T 7 = ∣ f ( i + 1 , j 1 ) − f ( i , j ) ∣ T7=\lvert f(i+1,j1)-f(i,j)\rvert T7=f(i+1,j1)f(i,j)∣
T 8 = ∣ f ( i + 1 , j − 1 ) − f ( i , j ) ∣ T8=\lvert f(i+1,j-1)-f(i,j)\rvert T8=f(i+1,j1)f(i,j)∣

求最大值

m a x ( T ) = m a x ( T 1 , T 2 , T 3 , T 4 , T 5 , T 6 , T 7 , T 8 ) max(T)=max(T1,T2,T3,T4,T5,T6,T7,T8) max(T)=max(T1,T2,T3,T4,T5,T6,T7,T8)

当存在孤立噪音点时,很容易在噪音点位置处获得最大梯度。根据图像边缘分割理论,如果一个像素是图像边缘,那么它的八邻域像素至少还有两个像素是图像边缘。

基于灰度梯度最大值累加(LGGS)的清晰度评价函数为

F m a x = ∑ i , j m a x ( T ) ∗ ( m a x ( T ) − m i n ( T ) ) F_{max}=\sum_{i,j}max(T)*(max(T)-min(T)) Fmax=i,jmax(T)(max(T)min(T))

四、效果对比

通过一组清晰度渐进的数据对比清晰度评价效果,评价算子进行数值归一化,效果如下

噪声较小的情况下,EOG、Laplace、LGGS算子的评价值效果接近

噪声较大的情况下,Laplace效果不佳,EOG能用,LGGS算子的评价值效果最好

五 参考

《基于图像灰度梯度最大值累加的自动调焦算法》

觉得本文对您有一点帮助,欢迎讨论、点赞、收藏,您的支持激励我多多创作。

我的个人博客主页,欢迎访问

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库设计

七、存储管理 1、存储介质 存储层次 存储分类 访问速度分类:主存储器、二级存储器、三级存储器操作分类:读操作、写操作联机分类:联机、脱机访问方式分类:随机访问、顺序访问读写单位分类:字节、块 存储介质分类 易…

到华为考场考HCIE的注意事项和考试流程

大家好,我是张同学,来自成都职业技术学院2021级计算机网络专业。最近成功通过了 Datacom HCIE 考试,在这里和大家分享一下我的经验。 考证契机 在母校的培养下,我接触到ICT这个行业,打好了基础,开始了成…

海外问卷调查如何影响企业的经营?在品牌建设中有何指导意义?

市场调查的定义:通过科学的方法,有目的地、系统地搜集整理一些市场信息,其目的在于了解当下市场现状和发展前景,为企业生产和品牌打造提供一些科学的指导意见,这是任何大企业、中小企业、初创企业都必须重视的一个重要…

hedfs和hive数据迁移后校验脚本

先谈论校验方法,本人腾讯云大数据工程师。 1、hdfs的校验 这个通常就是distcp校验,hdfs通过distcp迁移到另一个集群,怎么校验你的对不对。 有人会说,默认会有校验CRC校验。我们关闭了,为什么关闭?全量迁…

Unity3D仿星露谷物语开发25之创建时钟界面

1、目标 在时钟界面显示当前时钟信息,同时设置特殊按钮可以快速推进时间用于测试。 2、创建GameClock.cs脚本 在Assets -> Scripts -> TimeSystem目录下创建GameClock.cs脚本。 代码如下: using System.Collections; using System.Collections…

使用Vue3实现可拖拽的九点导航面板

开篇 本文使用Vue3实现了一个可拖拽的九宫导航面板。这个面板在我这里的应用场景是我个人网站的首页的位置,九宫导航对应的是用户最后使用或者最多使用的九个功能,正常应该是由后端接口返回的,不过这里为了简化,写的是固定的数组数…

小利特惠源码/生活缴费/电话费/油卡燃气/等充值业务类源码附带承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 安装教程如下 图片:

FlinkSql使用中rank/dense_rank函数报错空指针

问题描述 在flink1.16(甚至以前的版本)中,使用rank()或者dense_rank()进行排序时,某些场景会导致报错空指针NPE(NullPointerError) 报错内容如下 该报错没有行号/错误位置,无法排查 现状 目前已经确认为bug,根据github上的PR日…

C语言精粹:深入探索字符串函数

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文(1)常见字…

微信阅读网站小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

RabbitMQ 死信队列

文章目录 前言1、死信交换机 DLX 与死信队列 DLQ2、死信队列的实现2.1、声明原队列信息2.2、声明死信队列信息2.3、完整示例 3、死信消息流转原理 前言 消息过期以后,如果没有任何配置,是会直接丢弃的。我们可以通过配置让这样的消息变成死信&#xff0…

《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记

paper:Boundary-Aware Divide and Conquer: A Diffusion-Based Solution for Unsupervised Shadow Removal 目录 摘要 1、介绍 2、相关工作 2.1 阴影去除 2.2 去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 3、方…

leetcode28-找出字符串中第一个匹配的下标

leetcode 28 思路 首先循环haystack,然后当当前字符和needle的首字母相同的时候截取出长度等于needle的字符串,进行比较是否相等,如果相等则说明当前index为第一个匹配的下标,如果不相等则说明不正确继续进行遍历,直…

【esp32-uniapp】uniapp小程序篇02——引入组件库

一、引入组件库(可自行选择其他组件库) 接下来介绍colorUI、uview plus的安装,其他的安装可自行查找教程 1.colorUI weilanwl/coloruicss: 鲜亮的高饱和色彩,专注视觉的小程序组件库 下载之后解压,将\coloruicss-ma…

YOLOv8改进,YOLOv8检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等,全网独发

摘要 作者提出一种新的检测头,称为“动态头”,旨在将尺度感知、空间感知和任务感知统一在一起。如果我们将骨干网络的输出(即检测头的输入)视为一个三维张量,其维度为级别 空间 通道,这样的统一检测头可以看作是一个注意力学习问题,直观的解决方案是对该张量进行全自…

Vue2官网教程查漏补缺学习笔记 - 3Vue实例4模板语法5计算属性监听器

3 Vue实例 3.1 创建一个 Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm new Vue({// 选项 })虽然没有完全遵循 MVVM 模型,但是 Vue 的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变…

【高项】6.3 排列活动顺序 ITTO

输入 项目管理计划组件: ① 进度管理计划;② 范围基准 项目文件: ① 假设日志;② 活动属性;③ 活动清单;④ 里程碑清单 工具与技术 紧前关系绘图法(PDM) ① 完成到开始&…

将Deepseek接入本地Vscode

第一步:获取Deepseek APIKEY 1.1 登录Deepseek官网 https://www.deepseek.com/ 1.2 选择API开放平台 1.3 注册账号并登录 1.4 登录成功后的就界面 1.5 点击左侧菜单栏“API keys”,并创建API key 名称自定义输入 生成API key 复制保存,丢失…

docker使用笔记

文章目录 1.Docker 与容器2.核心概念与安装配置2.1 核心概念2.2 docker 安装ubuntu使用官方的脚本自动安装准备条件准备安装安装Docker安装Docker 命令补全工具允许非Root用户执行docker 命令最后一步 更新.bashrc文件 [修改docker 默认的存储路径](https://www.cnblogs.com/du…

vim如何设置制表符表示的空格数量

:set tabstop4 设置制表符表示的空格数量 制表符就是tab键,一般默认是四个空格的数量 示例: (vim如何使设置制表符表示的空格数量永久生效:vim如何使相关设置永久生效-CSDN博客)