java 图像梯度检测_数字图像处理-边缘检测

梯度介绍

首先介绍边缘检测中用到的高等数学原理---梯度。介绍梯度,离不开方向导数。

方向导数

顾名思义,方向导数就是某个方向上的导数。

什么是方向:

f213d7a6a6ba854eab9f5d6cd2794416.png

函数

equation?tex=f%28x%2Cy%29 在这个方向上的图像:

11474cb764e3baa0e400f9cdeaaa7cd7.png

我们知道:

b83aa2efa979e72f75c8a6e3a6abac82.png

函数

equation?tex=f%28x%2Cy%29

equation?tex=A 点在这个方向上也是有切线的,其切线的斜率就是方向导数:

617e57c4a982f3fde56ca9036b09c725.png

梯度

梯度:是一个矢量,它的方向上的方向导数最大,它的大小正好是此最大方向导数。

梯度的数学定义

9fd82f63b89f7630cf4ccbf0be4d171b.png

简单总结下:

方向导数是各个方向上的导数

偏导数连续才有梯度存在

梯度的方向是方向导数中取到最大值的方向,梯度的值是方向导数的最大值

2. 边缘检测

《经典边缘检测算子比较》 张丽 南京信息工程大学

图像的边缘是图像最基本的特征之一。所谓边缘(或边沿)是指周围像素灰度有跳跃性变化或“屋顶”变化的那些像素的集合。边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域之间,因此它是图像分割依赖的重要特征。

从本质上说,图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反应,它标志着一个区域的终结和另一个区域的开始。

边缘检测是所有基于边界分割的图像分析方法的第一步。

检测出的边缘并不等同于实际目标的真实边缘。由于图像数据时二维的,而实际物体是三维的,从三维到二维的投影必然会造成信息的丢失,再加上成像过程中的光照不均和噪声等因素的影响,使得有边缘的地方不一定能被检测出来,而检测出的边缘也不一定代表实际边缘。

图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘。一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。

8443bc5d597c1b77bc2eba63b6b18ed5.png

图像的梯度可以用一阶导数和二阶偏导数来求解。但图像是离散的,对一幅图像的求导相当于对一个面求导。对图像的操作,我们采用模板对原图像进行卷积运算,从而达到我们想要的效果。而获取一幅图像的梯度就转化为:模板(Roberts、Prewitt、Sobel、Lapacian算子)对原图像进行卷积,不过这里的模板并不是随便设计的,而是根据数学中求导理论推导出来的。

Roberts算子

梯度的模为

089d84b2a43bd168dc04fee5508b22fa.png

在图像处理中,实际我们用

3ce0371cbcafee042513e1b908139d76.png

397bd3a79267f69732841d335b858a58.png来表示两个偏导数

故,梯度的模可以表示为:

81378d3c393d6d06f8d40b975c8107d9.png

因为平方和平方根需要大量的计算开销,所以使用绝对值来近似梯度幅值:

5e7a352ca3812afdad9a81b149612862.png

一般我们常用对角线方向的像元计算梯度

5d2353ee131333b0053d79b016757a96.png

Prewitt和Sobel算子

在3*3模板中:

b7138238fb7a7a84b21aa826406ff5e0.png

定义水平、垂直和两对角线方向的梯度:

264b4ae1416a55d007699eac09642b8b.png 

该定义下的算子称之为Prewitt算子:

2098703638b22492c70918361cb0b110.png

Sobel算子是在Prewitt算子的基础上改进的,在中心系数上使用一个权值2,相比较Prewitt算子,Sobel模板能够较好的抑制(平滑)噪声。

计算公式为:

11d983fbba759108aaba79966f86585e.png 

Sobel算子:

f8d3117ba9b3e6663c1bb036aee60cf7.png

上述所有算子都是通过求一阶导数来计算梯度的,用于线的检测,在图像处理中,通常用于边缘检测。在图像处理过程中,除了检测线,有时候也需要检测特殊点,这就需要用二阶导数进行检测。

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

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

相关文章

java 查找排序_查找与排序算法(Java实现)

1、二分查找算法package other;public class BinarySearch {/** 循环实现二分查找算法arr 已排好序的数组x 需要查找的数-1 无法查到数据*/public static int binarySearch(int[] arr, int x) {int low 0;int high arr.length-1;while(low < high) {int middle (low hig…

java dos 菜单栏_学习java之电脑的常用快捷键和DOS窗口下的常用命令

学习java之电脑的常用快捷键和DOS窗口下的常用命令电脑一些常用的快捷键win快捷键&#xff1a;单独按Windows&#xff1a;显示或隐藏 “开始”功能表WindowsBREAK&#xff1a;显示“系统属性” 对话框WindowsD&#xff1a;显示桌面或恢复桌面WindowsM&#xff1a;最小化所有窗口…

java queue 最大值_[剑指offer题解]队列的最大值/滑动窗口的最大值

前言众所周知&#xff0c;《剑指offer》是一本“好书”。为什么这么说&#xff1f;因为在技术面试中&#xff0c;它里面罗列的算法题在面试中出现的频率是非常非常高的。有多高&#xff0c;以我目前不多的面试来看&#xff0c;在所有遇到的面试算法题中&#xff0c;出现原题的概…

java jvm 加载类的顺序_由经典面试题看java中类的加载机制

原标题&#xff1a;由经典面试题看java中类的加载机制1.概述类加载是Java程序运行的第一步&#xff0c;研究类的加载有助于了解JVM执行过程&#xff0c;并指导开发者采取更有效的措施配合程序执行&#xff0c;对理解java虚拟机的连接模型和java语言的动态性都有很大帮助。由于J…

php数据库可转java数据库,php转java 系列2 Spring boo 链接数据库jdbc

php转java 系列2 Spring boo 链接数据库jdbcJDBC首先创建一个新项目&#xff0c;在创建项目时要注意导入依赖&#xff0c;在项目创建成功后就会看到在 pom.xml 文件中找到&#xff0c;但是如果在创建项目的时候没有导入&#xff0c;就要在pom.xml中手动的添加依赖&#xff1b;o…

php连接excel表格数据类型,TP5 中使用PHPExcel 导出导入数据到excel表格

将下载好的PHPExcel文件夹放置在框架中的Vendor目录下&#xff0c;注意目录的结构&#xff0c;按照我的代码来基本上直接引用就能使用&#xff0c;如下图&#xff1a;导出数据代码如下//导出数据表 开始public function product(){$listdb(product)->select();vendor("…

oracle导致的负载高,Oracle 11g 数据库服务器CPU、IO负载高的故障排除流程

使用top查看负载高的进程~ [OSMSRDB]$ toptop - 11:02:43 up 12 days, 17:15, 4 users, load average: 1.50, 0.93, 0.36Tasks: 363 total, 1 running, 362 sleeping, 0 stopped, 0 zombieCpu(s): 1.2%us, 0.3%sy, 0.0%ni, 68.4%id,30.1%wa, 0.0%hi, 0.0%si, 0.0…

清理linux 服务器的命令行,使用Linux上的Magic SysRq键修复冻结的X服务器,清理重新启动并运行其他低级命令 | MOS86...

在Linux中&#xff0c;魔术SysRq键可以直接发送命令到Linux内核。您可以使用它来恢复冻结或干净地重新启动系统&#xff0c;即使没有任何反应。魔术SysRq键是作为Linux键盘驱动程序的一部分实现的 - 只要Linux内核仍在运行&#xff0c;它将会工作。只有内核崩溃才能禁用此组合键…

上海电力大学c语言程序设计章测试,上海电力学院c语言报告:实验8 指针.doc

上海电力学院c语言报告&#xff1a;实验8 指针.doc下载提示(请认真阅读)1.请仔细阅读文档&#xff0c;确保文档完整性&#xff0c;对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档&#xff0c;不会出现我们的网址水印。3、该文档所得收入(下载内容预览)…

python c语言 数据类型转换,Python类型转换,数据类型转换函数大全

虽然 Python 是弱类型编程语言&#xff0c;不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型&#xff0c;但在一些特定场景中&#xff0c;仍然需要用到类型转换。比如说&#xff0c;我们想通过使用 print() 函数输出信息“您的身高&#xff1a;”以及浮点类型 heigh…

新闻发布系统C语言,资讯 | 助力期末之c语言专场圆满结束!

原标题&#xff1a;资讯 | "助力期末"之c语言专场圆满结束&#xff01;大一生活如白驹过隙&#xff0c;一转眼便来到了期末&#xff0c;相信很多同学都对c语言期末考很在意&#xff0c;但是又不知道考点在哪里&#xff0c;感觉很多知识点都还不太清楚。确实&#xff…

android创建空文件,ADT 更新 eclipse srclayout 文件夹创建时候为空

今天是14-3-9&#xff0c;发现SDK Manager有更新&#xff0c;手贱点了一下。。。然后新建项目src和layout文件夹就成空的了。。。虽然可以手动建立内容&#xff0c;但是感觉很不爽&#xff0c;到处找解决方法&#xff0c;最后在贴吧找到了&#xff0c;内容链接到了eoe&#xff…

html语言循环语句,Scala @功能/语言的HTML文档 - for循环,如果语句等

我正在一个控制器的视图(HTML页面)中&#xff0c;我试图匹配复选框中的“选中”值的列表中。Scala 功能/语言的HTML文档 - for循环&#xff0c;如果语句等我从模型中抓取选定的复选框值(列表A)&#xff0c;将它们在控制器中抓取并发送到视图。我还从模型中获取复选框选择/选项/…

百度自动推送html5,百度暂停 JS 代码自动推送功能,代码是否需要删除?

本月上旬末的时候百度站长平台就推送了一则关于&#xff1a;搜索资源平台自动推送暂停使用通知。说到由于升级维护&#xff0c;搜索资源平台链接提交-自动提交-自动推送(JS 代码推送)功能暂时停止使用。并且会在恢复使用时再次通知。由于这条通知是百度通过搜索资源平台发送的站…

html中表格布局还是div布局,Table布局 VS Div+CSS布局,选哪个?

Table布局 和 DivCSS布局的争论&#xff0c;过了7-8年了&#xff0c;今天看到一篇文章《为什么我们不建议用Table布局》&#xff0c;又想发表下自己的见解&#xff0c;供初学《为什么我们不建议用Table布局》节选&#xff1a;Table要比其它html标记占更多的字节。(延迟下载时间…

计算机桌面锁写快捷,电脑如何锁屏幕 锁屏快捷键是什么

锁屏幕是用户们日常生活中的必备玩法,很多玩家们却不知道游戏中应该如何锁屏幕,那么具体应该如何锁屏幕呢?下面小编带大家一起来看下电脑如何锁屏幕吧!电脑怎么锁屏幕?电脑如何锁屏幕?1、首先自然是需要为电脑创建一个密码。点击开始按钮&#xff0c;然后找到控制面板&#…

计算机在军事的应用论文,信息技术论文3000字【军事信息技术论文】

信息技术是20世纪科学技术发展最重大&#xff0c;最辉煌的成就之一&#xff0c;下面是小编为大家精心推荐的军事信息技术论文&#xff0c;希望能够对您有所帮助。军事信息技术论文篇一漫谈信息技术【摘 要】本文研究了信息技术的发展历程&#xff0c;阐述了信息技术的涵义及研究…

计算机组成原理环境配置,计算机组成原理课程设计

《计算机组成原理》实验大纲适用专业&#xff1a;计算机科学与技术(本科)、网络工程(本科)实验学时&#xff1a;16学时学分&#xff1a;0.5学分一、实验课程目的与要求(1) 进一步融会贯通教材内容&#xff0c;掌握计算机各功能模块的工作原理、相互联系和来龙去脉&#xff0c;完…

计算机学业水平测试初中生操作题,初中学业水平考试信息技术考试操作题常见题型及作答方法...

初中信息技术考试操作题常见题型及作答方法牛角寨乡初级中学信息技术考试已经有两年了&#xff0c;通过这两年的考试情况来看&#xff0c;我认为&#xff0c;要想在信息技术考试中取得一个好的成绩&#xff0c;操作题是一个很重要的环节&#xff0c;从这两年的情况来看&#xf…

什么不是预防计算机病毒的方法,预防计算机病毒的方法是什么

对于电脑安全防护&#xff0c;最好的方法是将病毒扼杀在摇篮中&#xff0c;这就需要积极预防病毒&#xff0c;提前发现并查杀病毒。下面就让学习啦小编给大家说说预防计算机病毒的方法是什么吧。预防计算机病毒的方法第一、及时为Windows打补丁为Windows打补丁是很重要的&#…