锐化空间滤波器--二阶微分图像增强(提高清晰度的另一种方式)

书上一阶微分的定义可以理解,毕竟这里不死数学上的曲线的概念,而是像素点上的曲线。所以,不同于数学的严格单调递增曲线的导数是大于等于零,这里的严格单调递增曲线,只能是大于零。

至于二阶微分的定义,就无法从一阶微分的定义得到:如果按照一阶微分的定义应该是

f''(x)=f(x+2)+f(x)-2f(x+1)。这就是说差了一个像素的平移,究竟会有影响吗?这需要从书上之后的使用情况来判断。

我观察了一下,后面是和滤波器连用了,使用的结果是这种定义确实是跟我说的定义有一个向左下平移的关系,我只能说这种定义书上的定义更符合滤波器(掩模)。

也可以得出结论,一阶微分和二阶微分的定义是相互独立的,不相关的。

现在看拉普拉斯算子。

书上需要个各向同性滤波器,使用了拉普拉斯算子的概念(我该怎么说这些概念呢?属于数学建模的想法,但只是借了数学的外皮,跟真正的数学内容相差太大,令人哭笑不得。不过认真想想感觉真的是个好方法,能把无穷小分析下的数学转化为离散的数学,并且概念能保持一致,这样数学中的能解决的问题,这里也能解决。)

所以拉普拉斯算子的概念,只是看看就行,本质还是3x3掩模的对成型,图3.39的a是旋转90重合,图3.39的b是旋转45重合.至于掩模的数值计算,书上说的很清楚了。

然后书上说拉普拉斯变换,强调灰度的突变区域及把灰度慢变化区域降低。这句话的实质是二阶微分算子的作用,我现在贴出来:

这个图3.38a可惜并没有画出来彩照,书上也没有说清楚b是怎么来的。我只能猜测这就是在图像的中心花了一条水平线,是图b的横轴,纵轴是灰度级。

对比上图的二阶微分算子和图像素的数值发现,对于图像某个区域内,像素灰度级的缓的斜坡,数值在二阶微分计算之后是降低了,突变的白点和亮线数值提升了,但是对于突变的阶梯数值处理感觉是有些问题,把这么亮的变暗了。

图像边界和突变点叠加到暗背景。突变点会变亮可以理解。边界应该是掩模漏出来的部分对像素值补零了,所以边界也会提亮。

叠加原图会得到锐化图像。

书上给出了计算方法,并且给说拉普拉斯图像在负值的时候会被修剪为0。然后提到了标定方式,我贴出来:

最后我说一下,为什么叠加拉普拉斯图像的芯图像会保留原来的灰度呢?因为拉普拉斯算子把原来图像变化缓慢的都变成了0,做了标定之后变成了灰色,然后减去呢?就把原来的变化缓慢的变暗了,但是原本正值的被减去的更多,总的来说就是图片变暗了,但是图片发灰的情形被去去除了,然后书上的图3.38的(e)是重复减了一次图(c),按理说应该整体上应该变得更暗一些。

这就是ps中的锐化了。本来我以为空间滤波器只会造成图像的信息丢失,但是这个锐化过程是做减法,而不是求均值(这里不是平滑线性滤波器,平滑会丢失细节,局部会模糊),那么信息就没有丢失。所以能提高清晰度。

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

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

相关文章

HarmonyOS实战开发-图片编辑、使用 TextArea 实现多文本输入

介绍 本示例使用 TextArea 实现多文本输入,使用 ohos.app.ability.common 依赖系统的图库引用,实现在相册中获取图片,使用 ohos.multimedia.image 生成pixelMap,使用pixelMap的scale(),crop(),rotate()接口…

idea 中运行spring boot 项目报 Command line is too long的解决办法。

Command line is too long 在这里选择edit configures 选择shrten command line , 选择 jar manifest 运行即可。

解决vue启动项目报错:npm ERR! Missing script: “serve“【详细清晰版】

目录 问题描述问题分析和解决情况一解决方法情况二(常见于vue3)解决方法情况三解决方法 问题描述 在启动vue项目时通常在控制台输入npm run serve 但是此时出现如下报错: npm ERR! Missing script: "serve" npm ERR! npm ERR! T…

Flask + MongoDB极简登录示例代码

基本原理 这段代码是一个使用Flask框架的简单登录和注册系统。它使用了Flask-PyMongo扩展来连接MongoDB数据库,Flask-Login扩展来处理用户认证。以下是代码的主要部分: 导入所需的库和模块。初始化Flask应用,配置MongoDB连接和Flask-Login。…

IJKPLAYER源码分析-iOS端显示

1 简介 1.1 EAGL(Embedded Apple Graphics Library) 与Android系统使用EGL连接OpenGL ES与原生窗口进行surface输出类似,iOS则用EAGL将CAEAGLLayer作为OpenGL ES输出目标。 与 Android EGL 不同的是,iOS EAGL 不会让应用直接向 BackendFrameBuffer 和 F…

KKVIEW远程远程访问家里电脑

远程访问家里电脑:简易指南与价值所在 在数字化时代,电脑已成为我们日常生活和工作中不可或缺的工具。有时,我们可能在外出时急需访问家中电脑里的某个文件或应用,这时,远程访问家里电脑就显得尤为重要。本文将简要介…

微服务-7 Docker

一、镜像、容器、仓库 容器是镜像的实例,仓库中存储着镜像。 二、镜像的操作 三、容器的操作 创建容器停止容器,查看后发现没有了(docker ps 默认只展示没有停止的) docker ps -a (可以展示运行中和停止的镜像)删除容器:(docker rm 不能删除…

【LeetCode刷题日记】1716

Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。 最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。 给你 n ,请你返回在第…

长短时记忆网络(LSTM)

1. 理解RNN及其局限性 基础知识:首先,你需要了解RNN的基本概念和工作原理,包括它是如何通过时间步处理序列数据的。局限性:掌握RNN面临的主要挑战,特别是梯度消失和梯度爆炸问题,以及这些问题为什么会影响…

提升写作效率:掌握ChatGPT论文写作技巧

ChatGPT无限次数:点击直达 html 提升写作效率:掌握ChatGPT论文写作技巧 在科技的快速发展下,人工智能技术已经逐渐渗透到各行各业中。在学术领域,论文写作是一项重要且耗时的工作,而ChatGPT这样的人工智能工具可以帮助研究人员…

【C++之list的应用及模拟实现】

C学习笔记---012 C之list的应用及模拟实现1、list的简单介绍2、list的应用2.1、构造函数push_back迭代器遍历2.2、reverse逆置sort排序unique去重2.3、splice粘接/转移2.4、merge合并remove_if条件删除函数remove指定元素删除2.5、排序 -- 效率比较 3、list深度剖析及模拟实现3…

Spring Data 2021.1 (Q)升级说明

Spring Data 2021.1 (Q) Release Notes Spring Data Commons—2.6版本 1、域模型现jMolecules增加了Identity注解 2、QuerydslPredicateExecutor、QueryByExampleExecutor 及其响应式变体为 Spring Data 提供了强大的查询构建能力。它们允许你以更灵活和动态的方式定义查询&…

python维护代理ip的实现

前言: Python代理IP爬虫是一种可以让爬虫拥有更多网络访问权限的技术。 代理IP的作用是可以为爬虫提供多个IP地址,从而加快其爬取数据的速度,同时也可以避免因为访问频率过高而被网站封禁的问题。本文将介绍如何使用Python实现代理IP的爬取和…

突破界限 千视将在 NAB 2024 展会上展示领先的 AV over IP 技术

突破界限!千视将在 NAB 2024 展会上展示领先的 AV over IP技术 作为AV over IP领域的先驱者,Kiloview将于2024年4月14日至17日在NAB展会(展台号:SU6029)隆重登场,展示我们领先业界的AV over IP产品、解决方…

【问题】解决1130-Host‘ ‘is not allowed to connect to this MySQL 本地无法连接服务器的数据库

【问题】解决1130-Host‘ ‘is not allowed to connect to this MySQL 本地无法连接服务器的数据库 原因: 默认mysql只允许 localhost 本地访问数据库, 解决方法 将 localhost 改为 % 所有 第一步 回车 输入密码 mysql -u root -p 第二步 切换数据库 use mysql 第三步 更新所…

Day96:云上攻防-云原生篇Docker安全系统内核版本漏洞CDK自动利用容器逃逸

目录 云原生-Docker安全-容器逃逸&系统内核漏洞 云原生-Docker安全-容器逃逸&docker版本漏洞 CVE-2019-5736 runC容器逃逸(需要管理员配合触发) CVE-2020-15257 containerd逃逸(启动容器时有前提参数) 云原生-Docker安全-容器逃逸&CDK自动化 知识点&#xff1…

Ubuntu下配置Android NDK环境

Android-NDK的下载 下载Android-NDK wget -c http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin 执行bin文件(即解压) ./android-ndk-r10c-linux-x86_64.bin Android-NDK的配置 要想使用Android-NDK,还需要进行环境变量…

GitHub repository - Code - Issues - Pull Requests - Wiki

GitHub repository - Code - Issues - Pull Requests - Wiki 1. Code2. Issues3. Pull Requests4. WikiReferences 1. Code 显示该仓库中的文件列表。仓库名下方是该仓库的简单说明和 URL. 2. Issues 用于 BUG 报告、功能添加、方向性讨论等,将这些以 Issue 形式进…

less+rem适配+媒体查询布局(主流)

rem适配布局 一.rem基础二.媒体查询1.概念2.语法(1).mediatype查询类型(2).关键字(3).媒体特性(4).应用 3.媒体查询rem实现元素动态大小变化4.引入资源(针对不同媒体查询…

C语言如何初始化指针?

一、问题 如何初始化指针?只有初始化的指针才可以使⽤,这个与普通变量没有区别。 二、解答 定义指针变量之后,必须为其赋具体的值,⽽且指针变量的赋值只能赋予地址,绝对不可以是其他数据,并且要注意数据类…