图像边缘检测技术与理论发展脉络梳理大放送

Pandas数据清洗之数据分组和删除重复数据 函数对DataFrame进行分组。这是一个非常强大的功能,可以基于一个或多个列的值来聚合数据。这个方法提供了很多选项来定制你如何处理重复的数据。在Pandas中,删除DataFrame中的重复行可以通过。你可以根据需要选择不同的聚合函数,例如。这里是一个简单的例子来说明如何使用。在Pandas中,你可以使用。 阅读详情

FROM:http://blog.youkuaiyun.com/baimafujinji/article/details/23352867


  • 基于梯度的方法
  • Roberts, Sobel, Prewitt
  • 带方向的边缘检测
  • Prewitt, Kirsch, Robinson
  • 基于多次求导的方法
  • 拉普拉斯算子,(高斯拉普拉斯)LoG,(高斯差分)DoG
  • 多级边缘检测
  • Canny算法

任何一个学科或者一门学问从提出到发展,再到完善,都是一个漫长而循序渐进的过程。这个过程可能是几十年,也可能是上百年。但后人在学习的时候可能只需要几天的时间。如何在这样有限的时间里最大程度汲取前人几十年的思想精髓应当是一个值得思索的问题。如果仅仅只是零星的学到了几个知识点,那么这些离散的知识点终不能构筑起稳健和完备的知识体系。要真正学到精华,首先就必须要着力理清这门学问的发展脉络,然后从它的一次一次具有重大意义的改进中深入考察先贤们当初所面对的问题是什么,他们又是如何思考,以及如何解决问题的。如果能够把这个脉络整理清楚,不仅说明你对相关理论的认识已经有了质的飞跃,而且更是为你后续的进一步创新奠定了坚实的基础。

上世纪六十年代到八十年代末是边缘检测理论发展最为迅猛的黄金时段。我们现在所学习的主要理论和方法几乎都诞生在那段时期。Prewitt是关于梯度的边缘检测理论的集大成者和主要代表人物,他的主要理论都收录在1970年出版的文献[6]中,这部文献在后续涉及边缘检测内容的图像处理著作中被引用率极高。Prewitt和Kirsch已经开始对带有方向性的边缘检测技术有所涉足,但是为这一部分内容发展和应用起到至关重要作用的人当属后来的Robinson,Robinson总结并发展了Prewitt和Kirsch的有关成果,他最重要的理论贡献主要被收录在1977年的文章[5]中。当然,值得一提的是上面这些人当中Kirsch的名气其实是最大的。早在1947至1950年间他所领导研究小组就曾创造出了美国的第一台内部可程序化计算机(SEAC),他同时是扫描仪的发明人,他也是创造了第一张数字图像的人。他的突破性成果成为了后来卫星成像,以及诺贝尔奖获得者豪斯费尔德的CT扫描技术等众多科技创新的基础。

利用梯度的方法对灰度值变化强烈的边缘进行检测效果非常明显,但是对于过度的和缓的边缘则力不从心。考虑到基于多次求导(拉普拉斯算子)所得的边缘图像中噪声的影响非常大,Marr在1980年发表的文章[4]中提出了LoG算法,通过引入高斯滤波的方法来降低噪声的影响。Marr本来是一位英国神经科学家和心理学家,他最初引入高斯滤波的想法其实主要是从人类视觉特性的角度出发考虑的。Marr创造性地将神经生理学、心理学和人工智能融入到新的视觉处理模型中,并当之无愧地成为视觉计算理论的创始人。可惜天妒英才,Marr在35岁时因病英年早逝。就本书所涉及的内容而言,许多经典算法在设计上都明显受到Marr学术思想的影响。在Marr的LoG算法之后提出的边缘检测算法中,高斯滤波都是必选项(例如经典的Canny算法中也保留了高斯滤波的处理过程)。甚至到后面本书会讲到的SIFT算法中,通过高斯滤波构建多尺度空间表达的做法,也是从人类视觉生理特性角度考虑的。

到了1986年,站在众多巨人肩上的美国计算机科学家John Canny系统地对过往的一些边缘检测方法和应用做了总结,提出了当前被广泛使用的Canny边缘检测算法,更重要的是他还提出了后来被称为Canny准则(Canny's Criteria)的边缘检测三准则。Canny准则的目的在于:在对信号和滤波器做出一定假设的条件下利用数值计算方法求出最优滤波器并对各种滤波器的性能进行比较。

Canny准则的具体内容包括3个方面。

1)好的检测效果

好的检测效果应当首要满足对边缘的错误检测率要尽可能低这个条件。这也就意味着在图像上边缘出现的地方检测结果中不应该没有,同时没有出现边缘的地方也不应当存在虚假的结果。尽管边缘检测是存在一定误差的,但边缘检测的最终要求应当是使误差尽可能的减小,并最终收敛在一个实际中可以允许的范围内。

2)对边缘的定位要准确

也就是要求检测结果所标记的边缘位置要和图像上真正边缘的中心位置充分接近。

3)对同一边缘要有低的响应次数

这一点是出于对检测速度的考虑。

Canny不但首次明确而全面地提出了这三条准则,更重要的是Canny给出了这三条准则的数学表达式。由此寻找给定条件下最优算子的工作转化为一个泛函的优化问题。从而为寻找给定条件下最优滤波器开辟了新的更有效的道路。上述这些工作的重要意义就在于由Canny创立的计算理论解释了边缘检测这项技术是如何工作的。


参考文献及推荐阅读材料

[1] Muthukrishnan R., M. Radha. Edge DetectionTechniques for Image Segmentation. International Journal of ComputerScience & Information Technology,Vol. 3, No. 6, Dec. 2011

[2] William K. Pratt.Digital Image Processing: PIKSInside, Third Edition.John Wiley & Sons, Inc.,2001

[3] John Canny.Computational Approach To Edge Detection.IEEE Transactionson Pattern Analysis and Machine Intelligence,Vol. 8, No. 6,Nov. 1986

[4] D. Marr, E. Hildreth.Theory of Edge Detection.Proceedingsof the Royal Society of London, Vol. 207, No. 1167, Feb. 1980

[5] G. S. Robinson.Edge Detection by Compass GradientMasks.Computer Graphics and Image Processing,Vol. 6, No. 5, Oct. 1977

[6] J. M.S. Prewitt.Object Enhancement and Extraction, in PictureProcessing and Psychopictorics (B.S. Lipkin and A. Rosenfeld, eds).Academic Press, 1970


python合并根目录下所有表格文件并增加文件名索引 os和pandas实现多重文件夹下特定格式文件的合并 阅读详情

相关推荐

Pandas快捷教程——数据载入

Pandas是Python中非常重要的用于处理结构化数据的开源工具包,基于NumPy实现了许多灵活、强大的高级工具。Pandas的主要数据结构是Series(一维数据)和DataFrame(二维数据),并在此基础上提供了诸如缺失值处理、插入、删除、分组等非常丰富的API

白马负金羁 7554

【python数据分析(13)】Pandas中数据去重与替换、数据分组(groupby方法的使用)、分组统计方法(基本函数及扩展)

1. 去重及替换 1.1 .duplicated() 方法,判断是否重复 可以通过布尔判断,得到不重复的值(类比之前的.is_unique()方法) s = pd.Series([1,1,1,2,2,3,4,5]) print(s.duplicated()) print(s[s.duplicated() == False]) –> 输出的结果为: 0 False 1 True...

lys_828的博客 4038

图像边缘检测技术与理论发展概述

本文简要介绍了图像边缘检测技术的理论发展脉络,并提供了使用Sobel算子、Canny边缘检测和基于深度学习的CNN模型的代码示例。这些方法都是边缘检测领域的经典和常用技术,可在实际项目中进行应用和进一步优化。当然,边缘检测技术的发展仍在不断演进,未来可能会出现更多基于深度学习的创新方法,以及结合其他图像处理技术的新型边缘检测算法。边缘检测是计算机视觉领域中的一项重要任务,旨在识别和提取图像中物体的边界信息。本文将梳理图像边缘检测技术的理论发展脉络,并提供相应的源代码实例。

IpyVariable的博客 355

pandas处理数据代码:分组聚合、保留重复行、删除重复行

txt转csv import numpy as np import pandas as pd txt=np.loadtxt('1216.txt') txtDF=pDataFrame(txt) txtDF.to_csv('1216.csv',index=False) 删除重复行 (删除所有、保留第一次出现的重复行、保留最后一次出现的重复行) df1=pd.read_csv('1216gg.csv') df1=df1.astype(str) df1.drop_duplicates(subset=

qq_41919183的博客 2469

VS配置RTKLIB(卫星定位开源代码)环境

@RTKlib代码调试教程-Visual Studio 2019 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ##RTKLIB-rtklib_2.4.3 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @RTKlib代码调试教程-Visual Studio 2019 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技

qq_42209977的博客 4486

kemeas算法继续优化——elkan kmeas算法

题记:又是凌晨3点的夜 elkan kmeans算法 在我的上一篇博客《kmeans算法性能改进_kmeans++算法+kmeans++优化算法+距离计算优化》中,在一般kmeans算法的基础上,添加了对于初始条件和距离计算更上的一些优化技巧。这篇博客聊一聊elkan算法,其实也是对于kmeans运行速度的优化算法。主要作用与kmeans的距离计算过程。 原理 假如我们已经知道任意两个样本之间的距离,再假设我们已经知道了样本1与聚类中心1之间的距离,根据三角性两边之和大于第三边,c+d>a,所以如果

铁血军的小博客 7065

python-数据分析-(10)pandas时间处理、字符串处理、分组聚合、去重排序常见操作

pandas在数据清洗过程,难不了会特定的列或者行进行操作,就需要特殊的指令操作,在这里收集了常见的操作指令。希望能在工作中帮给您一定的帮助。 我这本文章中先导入包,读取了本地的一个文件,内容有字符串、时间。 # import导入模块 import pandas as pd import numpy as np # 读取Excel文件 data = pd.read_excel('./meal_order_detail.xlsx') print(data.shape) # (2779, 19) 查看结构

pseudonym 3273

智能体在车联网中的应用:一份详尽到每日的100天学习路线图

这100天的旅程,是一次对毅力、学习方法和工程实践能力的综合考验。它不仅关乎掌握一系列技术点,更关乎培养解决复杂系统性问题的思维模式——将宏观的交通需求分解为微观的智能体决策,再通过多智能体协同涌现出宏观的智能行为。当你完成这份大纲时,你将拥有的不仅是一个项目作品集,更是一套应对“智能体+车联网”乃至更广泛AI+垂直领域挑战的方法论。未来已来,期待你成为构建智能交通新生态的关键贡献者。

IT深耕十余载,大道之简 1332

python pandas 分组后去重统计

python pandas 分组后去重统计方法一方法二 有DataFrame: df = pd.DataFrame({ 'group': [1, 1, 2, 3, 3, 3, 4], 'param': ['a', 'a', 'b', np.nan, 'a', 'a', np.nan] }) print(df) # group param # 0 1 a #...

weixin_43609275的博客 3万+

逆向解析M团外卖mtgsig与waimai_sign加密参数实战指南⊙ω⊙

本文详细解析了M团外卖App中mtgsig与waimai_sign两个核心加密参数的逆向分析与生成方法。通过抓包定位、静态逆向与Frida动态调试,拆解了waimai_sign的RSA签名逻辑与mtgsig的复杂参数组装加密流程,并提供了Python模拟实现的框架与调试心得,为安全研究及合规数据分析提供实战指南。

weixin_29327525的博客 1283

从0开始,部署micro_ros+stm32f407+stm32cubeIDE

(5)安装依赖项rosdep时,必须处于创建的microros_ws中,因为里面有clone的src文件夹。(3)教程a中的安装docker不是必须的,取决于运行agent时是否想使用docker。(4)记得安装rosdep,并在以后的命令中将rosdep替换为rosdepc。4、运行agent,选择udp、tcp、can、串口,这里没有使用docker。(1)首先参考教程a安装虚拟机和ubuntu,注意版本选择22.04;(2)参考教程b部署micro_ros构建系统。二、安装和运行agent。

m0_37963053的博客 2234

合并数据并添加一列文件名

【代码】合并数据并添加一列文件名。

weixin_48035827的博客 629

工业预测性维护实战:振动分析+Transformer预警系统构建指南

摘要:本文聚焦工业设备预测性维护难题,提出基于振动分析与Transformer模型的全栈解决方案。通过低成本硬件选型(单传感器¥380)实现设备振动信号实时采集,利用边缘计算单元完成特征工程(RMS、峰度、峰值频率提取),并在云端部署Transformer时序模型进行异常预警。某风电龙头企业实践显示,系统将故障误报率从38%降至6%,维护成本降低58%,非计划停机时长减少87%。文中提供完整的边缘端特征提取代码、云端模型架构及实施流程,适配ISO 13373振动分析标准,为制造业设备健康管理提供可复用的工程

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 625

pandas实现分组去重计数功能

用pd.Series.nunique在pandas中实现分组计数功能 grouped = data.groupby(["col1", "col2"]) grouped.agg({"col3": "count", "col4": pd.Series.nunique})

longwei92的博客 1万+

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1737

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号-串联端接

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑并且进行串联端接,以下图为例,准备好发送接收端的IBIS模型, (se_example.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(W1_welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 338

Python进阶:Pandas -- 清理重复数据

🌵 深入探索Python进阶之路,Pandas库成为我们清理重复数据的得力助手!🔥 在数据处理的旅程中,重复数据常常成为我们的绊脚石。但是,借助Pandas的`drop_duplicates()`函数,我们可以轻松地去重,让数据更加整洁!🔍 在这个过程中,我们深入了解了`drop_duplicates()`的参数,如`subset`、`keep`等,以便更灵活地处理数据。📕 回顾与收获时刻,我们感慨Pandas的强大与便捷,同时也期待与您共同成长,探索更多数据处理的奥秘!🤗

创作高质量博文,分享知识,共同进步! 4258

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

边缘检测(1)简介

所谓图像边缘(Edlge)是指图像局部特性的不连续性,例如,灰度级的突变,颜色的突变,纹理结构的突变等。边缘广泛存在于目标与目标、物体与背景、区域与区域(含不同色彩)之间,它是图像分割所依赖的重要特征。本为主要讨论几种典型的图像灰度值突变的边缘检测方法,其原理也是用于其他特性突变的边缘检测。 在讨论边缘检测方法之前,首先介绍一些术语的定义。 (1)边缘点...

weixin_34392843的博客 752

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python小技巧--pandas多样化去重【实践】

pandas数据处理之数据去重,pandas.DataFrame.drop_duplicates()与 pandas.DataFrame.duplicated(),多列去重以及互换列去重

故事猝不及防,发量秃如其来 4209

边缘检测

一、 Canny边缘检测算法的发展历史   Canny算子是28岁的JohnCanny在1986年提出的,该文章发表在PAMI顶级期刊(1986.A computational approach to edge detection. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8, 1986, pp...

weixin_43432093的博客 1392

Pandas快速入门之第三节使用pandas去重、合并、已经统计出现次数

前言: 本节主要参考的连接有,https://blog.csdn.net/brucewong0516/article/details/82707492 本节主要介绍如何使用pandas去重、合并、以及根据规则统计出现数据出现的次数,其主要包括三个函数: drop_duplicates()、merge() 、groupby() 。 1、dro...

YYLin 1万+

Pandas筛选、去重与数据合并

通过本文操作,可以对表格进行排序和筛选,最终合并两张表格。groupby函数和merge函数是类似操作中最重要的部分,需要重点掌握。

书江南的博客 2702

python利用pandas统计分析—groupby()函数的使用

介绍一下groupby的基本原理、对应的agg、transform和apply操作、groupby后的去重统计及重命名列名。

sodaloveer的博客 1万+

pandas数据处理(三)---数据合并、聚合

数据合并、拼接 Pandas包的merge、join、concat方法可以完成数据的合并和拼接,merge方法主要基于两个dataframe的共同列进行合并,join方法主要基于两个dataframe的索引进行合并,concat方法是对series或dataframe进行行拼接或列拼接。 一、数据合并 1、merge pandas的merge方法是基于共同列,将两个dataframe连接起来。merge方法的主要参数: pd.merge(left,right,how="inner", on=None,le

weixin_43165676的博客 2339

GPU 加速下的图像视觉

过去几年中发展出来的机器视觉方法中的几个,它们仅仅是适合在 GPU 上工作的方法中的一部分。我个人认为在这个领域还有着令人激动的开创性工作要去做,这将会诞生可以提高许多人生活质量的应用。希望这篇文章至少为你提供了一个机器视觉领域简要的总体介绍,并且展示了这个领域并不像许多开发者想象的那样无法进入。

来瓶花雕 1475
上一篇: 暗通道优先的图像去雾算法(上)
下一篇: 避免图像去雾算法中让天空部分出现过增强的一种简易方法
凌风探梅
博客等级 码龄19年 2575粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值