【阅读笔记】基于整数+分数微分的清晰度评价算子

本文介绍的是一种新的清晰度评价算子,整数微分算子+分数微分算子

一、概述

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

二、算法思想

由于边缘像素的灰度变化短促,可以采用一阶微分和二阶微分来反映这种局部变化,分数微分运算可以大幅提升图像边缘和纹理细节信息,同时非线性成分有所保留,且提取的边缘信息能避免产生较大的噪声目前的分数微分算子主要是0阶~1阶和1阶~2阶,其中0阶~1阶的分数微分算子模板为5×5甚至更大,参与计算的像素过多,计算量太大;而根据1阶~2阶微分的定义容易构造3×3模板的梯度算子且同样具有检测纹理信息的优点。

将1阶~2阶分数微分与整数微分相结合,构造出一种新的聚焦评价函数。

三、清晰度评价

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 整数+分数微分函数

分数微分卷积算子:

W x = ∣ 0 0 0 4 − 3 ∗ 2 2 − v + 3 2 − v − 2 ∗ ( 1 − 2 3 − v + 3 2 − v ) 3 − 2 2 − v 1 − 2 3 − v + 3 2 − v 4 − 3 ∗ 2 2 − v + 3 2 − v − 2 ∗ ( 1 − 2 3 − v + 3 2 − v ) 0 0 0 ∣ W_x=\begin{vmatrix} 0 & 0 & 0 \\\frac{4-3*2^{2-v}+3^{2-v}}{-2*(1-2^{3-v}+3^{2-v})} & \frac{3-2^{2-v}}{1-2^{3-v}+3^{2-v}} & \frac{4-3*2^{2-v}+3^{2-v}}{-2*(1-2^{3-v}+3^{2-v})} \\ 0 & 0 & 0 \end{vmatrix} Wx= 02(123v+32v)4322v+32v00123v+32v322v002(123v+32v)4322v+32v0

W y = ∣ 0 4 − 3 ∗ 2 2 − v + 3 2 − v − 2 ∗ ( 1 − 2 3 − v + 3 2 − v ) 0 0 3 − 2 2 − v 1 − 2 3 − v + 3 2 − v 0 0 4 − 3 ∗ 2 2 − v + 3 2 − v − 2 ∗ ( 1 − 2 3 − v + 3 2 − v ) 0 ∣ W_y= \begin{vmatrix} 0 & \frac{4-3*2^{2-v}+3^{2-v}}{-2*(1-2^{3-v}+3^{2-v})} & 0 \\0 & \frac{3-2^{2-v}}{1-2^{3-v}+3^{2-v}} & 0 \\ 0 & \frac{4-3*2^{2-v}+3^{2-v}}{-2*(1-2^{3-v}+3^{2-v})} & 0 \end{vmatrix} Wy= 0002(123v+32v)4322v+32v123v+32v322v2(123v+32v)4322v+32v000

利用整数微分求图像边缘部分的梯度值基础上,加上分数微分求取边缘及纹理细节部分的梯度值,清晰度评价函数为

F d i f f e r = ∑ i , j ∣ K 1 ∗ G 1 ( i , j ) ∣ + ∣ K 2 ∗ G 2 ( i , j ) ∣ F_{differ}=\sum_{i,j}|K_1*G_1(i,j)|+|K_2*G_2(i,j)| Fdiffer=i,jK1G1(i,j)+K2G2(i,j)

G 1 ( i , j ) = f ( x , y ) . ∗ T x + f ( x , y ) . ∗ T y G_1(i,j)=f(x,y).*T_x+f(x,y).*T_y \\ G1(i,j)=f(x,y).Tx+f(x,y).Ty

G 2 ( i , j ) = f ( x , y ) . ∗ W x + f ( x , y ) . ∗ W y G_2(i,j)=f(x,y).*W_x+f(x,y).*W_y G2(i,j)=f(x,y).Wx+f(x,y).Wy

整数微分算子如下:

T x = ∣ 0 0 0 1 − 2 1 0 0 0 ∣ T_x= \begin{vmatrix} 0 & 0 & 0 \\1 & -2 & 1 \\ 0 & 0 & 0 \end{vmatrix} Tx= 010020010

T y = ∣ 0 1 0 0 − 2 0 0 1 0 ∣ T_y= \begin{vmatrix} 0 & 1 & 0 \\0 & -2 & 0 \\ 0 & 1 & 0 \end{vmatrix} Ty= 000121000

K1 为0.618,K2为0.3382

v为分数微分阶数(1<v<2,本文v取1.7)

四、效果对比

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

噪声较大的情况下,Laplace效果不佳,微分算子勉强能用,EOG相对较好。

五 参考

《一种可用于纤维图像的聚焦评价函数》

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

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

我的CSDN主页,欢迎访问

我的GitHub主页,欢迎访问

我的知乎主页,欢迎访问

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

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

相关文章

【学习笔记】计算机网络(二)

第2章 物理层 文章目录 第2章 物理层2.1物理层的基本概念2.2 数据通信的基础知识2.2.1 数据通信系统的模型2.2.2 有关信道的几个基本概念2.2.3 信道的极限容量 2.3物理层下面的传输媒体2.3.1 导引型传输媒体2.3.2 非导引型传输媒体 2.4 信道复用技术2.4.1 频分复用、时分复用和…

linux设置mysql远程连接

首先保证服务器开放了mysql的端口 然后输入 mysql -u root -p 输入密码后即可进入mysql 然后再 use mysql; select user,host from user; update user set host"%" where user"root"; flush privileges; 再执行 select user,host from user; 即可看到变…

Midscene.js:重新定义UI自动化的新时代工具

前言 Midscene.js 是一个创新的、面向开发者的 UI 自动化解决方案&#xff0c;并通过人工智能技术简化自动化脚本的编写与维护。 它提供了三种核心方法——交互&#xff08;.ai, .aiAction&#xff09;、提取&#xff08;.aiQuery&#xff09;和断言&#xff08;.aiAssert&am…

【开源免费】基于Vue和SpringBoot的社区智慧养老监护管理平台(附论文)

本文项目编号 T 163 &#xff0c;文末自助获取源码 \color{red}{T163&#xff0c;文末自助获取源码} T163&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

从0到1:C++ 开启游戏开发奇幻之旅(一)

目录 为什么选择 C 进行游戏开发 性能卓越 内存管理精细 跨平台兼容性强 搭建 C 游戏开发环境 集成开发环境&#xff08;IDE&#xff09; Visual Studio CLion 图形库 SDL&#xff08;Simple DirectMedia Layer&#xff09; SFML&#xff08;Simple and Fast Multim…

可以称之为“yyds”的物联网开源框架有哪几个?

有了物联网的发展&#xff0c;我们的生活似乎也变得更加“鲜活”、有趣、便捷&#xff0c;包具有科技感的。在物联网&#xff08;IoT&#xff09;领域中&#xff0c;也有许多优秀的开源框架支持设备连接、数据处理、云服务等&#xff0c;成为被用户们广泛认可的存在。以下给大家…

Mybatis-plus 更新 Null 的策略踩坑记

一个bug 在一个管理页面&#xff0c;有一个非必填字段被设置成空了并提交更新&#xff0c;再次打开的时候&#xff0c;发现字段还在&#xff0c;并没有被更新成功。 使用的数据库映射框架是 Mybatis-plus &#xff0c;对于Mybatis 在更新字段的时候会对空进行校验&#xff0c;…

Linux第一讲--基本的命令操作

从今天开始&#xff0c;我将在csdn这个平台上和大家分享Linux的相关知识&#xff0c;欢迎大家一起讨论&#xff01; 零、基本操作 1.进入全屏&#xff1a; ALTENTER,退出也是这个 2.复制&#xff1a;ctrlinsert 3.粘贴&#xff1a;shiftinsert Linux中&#xff0c;cv是不好…

[CISCN2019 华东南赛区]Web41

进入题目页面如下 点击链接但发现 各种尝试无果 看了一个大佬的博客&#xff0c;链接如下 BUUCTF&#xff1a;[CISCN2019 华东南赛区]Web4-CSDN博客 给了很大的提示&#xff0c;大佬尝试了file:///etc/passwd无果&#xff0c;猜测Flask&#xff0c;尝试local_file:///读取文…

make controller vibrate and 判断是否grab

我自己的例子&#xff0c;新建cube上挂载oculus交互的代码&#xff0c;如下 然后加载自己写的代码到cube上就可以了 using Oculus.Interaction.HandGrab; using System.Collections; using System.Collections.Generic; using UnityEngine;public class Vibtation : MonoBehav…

基于C++的DPU医疗领域编程初探

一、大型医院数据处理困境与 DPU 的崛起 在数字化浪潮的席卷下,医疗行业正经历着深刻变革,大型医院作为医疗服务的核心枢纽,积累了海量的数据,涵盖患者的基本信息、诊断记录、检验报告、影像资料等多个维度。这些数据不仅规模庞大,而且增长速度迅猛,传统的中央处理器(C…

【记录】日常|从零散记录到博客之星Top300的成长之路

文章目录 shandianchengzi 2024 年度盘点概述写作风格简介2024年的创作内容总结 shandianchengzi 2024 年度盘点 概述 2024年及2025年至今我创作了786即84篇文章&#xff0c;加上这篇就是85篇。 很荣幸这次居然能够入选博客之星Top300&#xff0c;这个排名在我之前的所有年份…

详解最基本的数据顺序存储结构:顺序表

新的一年&#xff0c;我觉得这张图很合适&#xff01;有梦想&#xff0c;敢拼&#xff0c;马上就是除夕了&#xff0c;希望新的一年我们逢考必过&#xff0c;事事顺心&#xff0c;看见朝阳的你是不是嘴角微微上扬&#xff01; 本篇从0基础白话文讲述顺序表的概念、用法、注意事…

字节跳动发布UI-TARS,超越GPT-4o和Claude,能接管电脑完成复杂任务

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

移动光猫怎么自己改桥接模式?

环境&#xff1a; 型号H3-8s 问题描述&#xff1a; 家里宽带用的是H3-8s 光猫&#xff0c;想改桥接模式。 解决方案&#xff1a; 1.默认管理员账号和密码&#xff1a; 账号&#xff1a;CMCCAdmin 密码&#xff1a;aDm8H%MdAWEB页面我试了登陆不了&#xff0c;显示错误 …

【Java数据结构】排序

【Java数据结构】排序 一、排序1.1 排序的概念1.2 排序的稳定性1.3 内部排序和外部排序1.3.1 内部排序1.3.2 外部排序 二、插入排序2.1 直接插入排序2.2 希尔排序 三、选择排序3.1 选择排序3.2 堆排序 四、交换排序4.1 冒泡排序4.2 快速排序Hoare法&#xff1a;挖坑法&#xff…

Java数据结构 (链表反转(LinkedList----Leetcode206))

1. 链表的当前结构 每个方框代表一个节点&#xff0c;每个节点包含两个部分&#xff1a; 左侧的数字&#xff1a;节点存储的值&#xff0c;例如 45、34 等。右侧的地址&#xff08;如 0x90&#xff09;&#xff1a;表示该节点 next 指针指向的下一个节点的内存地址。 例子中&a…

Linux查看服务器的内外网地址

目录&#xff1a; 1、内网地址2、外网地址3、ping时显示地址与真实不一致 1、内网地址 ifconfig2、外网地址 curl ifconfig.me3、ping时显示地址与真实不一致 原因是dns缓存导致的&#xff0c;ping这种方法也是不准确的&#xff0c;有弊端不建议使用&#xff0c;只适用于测试…

微服务学习-服务调用组件 OpenFeign 实战

1. OpenFeign 接口方法编写规范 1.1. 在编写 OpenFeign 接口方法时&#xff0c;需要遵循以下规范 1.1.1.1. 接口中的方法必须使用 RequestMapping、GetMapping、PostMapping 等注解声明 HTTP 请求的类型。 1.1.1.2. 方法的参数可以使用 RequestParam、RequestHeader、PathVa…

基于C语言的数组从入门到精通

简介:本篇文章主要介绍了一维数组,二维数组,字符数组的定义,数组的应用,数组的核心代码解析,适用于0基础的初学者. C语言数组 1.一维数组 1.1定义 1.1.1声明 语法:数据类型 数组名[数组大小];示例:int arr[5]; 1.1.2初始化 a.静态初始化 完全初始化&#xff1a;int arr[5] {1…