用分水岭算法实现图像分割 (祝勇)

图像分割之分水岭算法 使用C++、opencv进行分水岭分割图像 分水岭概念是以对图像进行三维可视化处理为基础的:其中两个是坐标,另一个是灰度级。基于“地形学”的这种解释,我们考虑三类点: a.属于局部性最小值的点,也可能存在一个最小值面,该平面内的都是最小值点 b.当一滴水放在某点的位置上的时候,水一定会下落到一个单一的最小值点 c.当水处在某个点的位置上时,水会等概率地流向不止一个这样的最小值点 对一个特... 阅读详情

工作日志

任务:用分水岭算法实现图像分割

分水岭算法的概念及原理

分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。

分水岭的计算过程是一个迭代标注过程。分水岭比较经典的计算方法是L. Vincent提出的。在该算法中,分水岭计算分两个步骤,一个是排序过程,一个是淹没过程。首先对每个像素的灰度级进行从低到高排序,然后在从低到高实现淹没过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。

分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显然,分水岭表示的是输入图像极大值点。因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,即

g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]2[f(x,y)-f(x,y-1)]2}0.5

式中,f(x,y)表示原始图像,grad{.}表示梯度运算。

分水岭算法对微弱边缘具有良好的响应,图像中的噪声、物体表面细微的灰度变化,都会产生过度分割的现象。但同时应当看出,分水岭算法对微弱边缘具有良好的响应,是得到封闭连续边缘的保证的。另外,分水岭算法所得到的封闭的集水盆,为分析图像的区域特征提供了可能。

  为消除分水岭算法产生的过度分割,通常可以采用两种处理方法,一是利用先验知识去除无关边缘信息。二是修改梯度函数使得集水盆只响应想要探测的目标。

为降低分水岭算法产生的过度分割,通常要对梯度函数进行修改,一个简单的方法是对梯度图像进行阈值处理,以消除灰度的微小变化产生的过度分割。即

g(x,y)=max(grad(f(x,y)),gθ)

式中,gθ表示阈值。

本程序采用的方法是用阈值限制梯度图像以达到消除灰度值的微小变化产生的过度分割,获得适量的区域,再对这些区域的边缘点的灰度级进行从低到高排序,然后在从低到高实现淹没的过程,梯度图像用Sobel算子计算获得。对梯度图像进行阈值处理时,选取合适的阈值对最终分割的图像有很大影响,因此阈值的选取是图像分割效果好坏的一个关键。缺点:实际图像中可能含有微弱的边缘,灰度变化的数值差别不是特别明显,选取阈值过大可能会消去这些微弱边缘。

 

OpenCV入门(九)——图像分割技术之分水岭分割 图像分割是利用图像特征灰度、颜色、纹理和形状等将图像中特定的具有独特性质的区域进行划分,进而实现感兴趣的目标的提取。根据分割成因可以分为连续分割和非连续分割。连续分割是指将具有同一灰度级或相同特征的像素划分为不同区域,常见的分割方法有**区域生成、阈值分割及聚类分割**等。非连续分割是利用像素值突变特性来呈现不同边界区域以实现图像分割,常见的分割方法有**点线检测、边缘及能量**等。 ## 0x01 分水岭分割 (一)分水岭分割 分水岭分割是基于自然的启发算法来模拟水流通过地形起伏的现象从而研究总结出 阅读详情

相关推荐

图像分割 - 分水岭算法

图像是由x,y表示的,如果将灰度值也考虑进去的话,那么一幅图像需要一个三维的空间去表示。这样就可以把x,y轴比作大地,将灰度值的z轴比作地面上的坡度。因为图像的灰度值是不均匀的,那么也意味着这个地面也是坑坑洼洼的。那么试想一下,下雨的时候,由于地面是不平坦的,雨水会顺着高的地面流向地处。必然会导致有的地方堆满了水,有的地方由于地势较陡,没有雨水分水岭算法就是利用这种“地形学”,或者说灰度值的不均匀对图像进行分割。属于区域极小值的点水滴所在位置的点,如果把水滴放在任意位置,水滴必然流向某个极小值。

Henry的博客 7548

分水岭分割技术浅析

分水岭分割技术是一种很优秀的且得到了广泛应用的分割技术,从本质上讲,它属于一种基于区域增长的分割方法,但它得到的确是目标的边界,且是连续、闭合、但像素宽的边界。在很多领域,这种分割技术都得到了广泛的应用,但分水岭分割却有一个致命的弱点,那就是容易产生过分割,对于噪声和细密纹理非常敏感,使其常常产生严重的过分割结果。所以,针对这个问题,很多人提出了很多种改进的分水岭分割技术。综合来讲,大概也就三类。

onlyyouandme的专栏 1890

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 390

C语言图像分割分水岭算法,一种基于分水岭算法的图像分割方法与流程

技术领域本发明涉及一种基于分水岭算法的图像分割方法。背景技术:机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号。图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作...

weixin_30775883的博客 447

企业微信群机器人配置全攻略:从零到消息推送的完整流程

本文详细介绍了企业微信群机器人的配置与使用全流程,从零开始指导如何创建机器人、获取Webhook地址,到通过HTTP请求发送文本、Markdown、图片及模板卡片等多种消息类型。内容涵盖核心的接口配置、安全实践及实战应用场景,帮助开发与运维团队快速构建自动化消息推送中枢,提升协作效率。

weixin_29231725的博客 837

什么是无人机巡检?如何实现无人机自动巡检?

复亚智能的无人机自动巡检系统通过高度自动化的技术,实现了无人机的高效巡检作业。无人机自动机场支持无人机的自动起降和电池更换,自动飞行算法确保无人机在复杂环境中的精准飞行和拍摄,而云端识别诊断和AI感知算法平台则实现图像的实时传输和智能分析。复亚智能,作为无人机技术的创新者和推动者,致力于开发先进的无人机自动巡检解决方案,助力各行各业实现智能化、自动化的巡检工作,引领智能巡检的未来。利用人工智能和机器学习算法,无人机可以被训练来识别特定的模式和异常,如结构损坏、热泄漏等,从而提高巡检的准确性和效率。

foiadrone的博客 2842

分水岭算法实现图像分割步骤

分水岭算法是一种图像分割方法,可用来将图像中的物体和背景分离开。它的基本思想是: 对图像进行阈值化,将图像中的像素分成前景像素和背景像素。 对前景像素和背景像素分别进行标记。 使用分水岭算法,找到图像中的“分水岭”,即前景和背景的分界线。 将图像分成两个区域,一个是前景区域,一个是背景区域。 最后,将分割后的图像输出。 希望这对你有帮助! ...

weixin_42601702的博客 313

02-基于ART-PI开发板创建USB CDC 虚拟串口设备

本例在ART-PI开发板上,基于RT-Thread 5.0,5虚拟了一个USB32 CDC串口设备。

arm_fan的专栏 1885

【图像分割】传统分割算法—分水岭算法(包含基于opencv的实例展示)

分水岭算法将图像看作地理学中的地形表面,图像中的高灰度值区域被看作山峰,低灰度值区域被看作山谷。进而实现图像的分割。假如我们向“山谷”中注水,水位则会逐渐升高,然后不同山谷的水就会汇集在一起,如果我们阻止来自不同山谷的水汇集,我们需在水流可能交汇处建立堤坝,我们需要把图像分成两个不同的集合:集水盆地和分水岭线。我们建立的堤坝即是分水岭线,也即是对原图像的分割。但是由于图像中的噪声或任何其他不规则性,这种方法会造成过度分割的结果。所以OpenCV。

qq_43456016的博客 1万+

电压抬升电路设计

一、实验目的 掌握集成运放电压放大电路设计基本方法。 掌握基本仪器使用方法(电源、信号发生器、示波器)。 二、实验内容及结果 实验内容 基于集成运放设计一传感器信号采集电路。传感器输出信号在±50mV,频率为100Hz以内,模数转换器允许输入电压在0~5V,要求设计传感器与模数转换器之间的信号采集电路,实现传感器信号放大10倍,并适合模数转换器的输入。模数转换器的输入电阻为1KHz,设计电路时,可使用1KHz电阻作为信号采集电路负载,代替模数转换器。 实验具体要求如下: (1)确定电路形式,说明电压转

Safaearth的博客 4万+

踩坑2周总结:Python+YOLO26搭建工业级多路视频分析应用,从单路卡顿到16路4K稳跑30FPS

本文分享了工业级多路视频分析系统的实战经验,针对智慧物流园区的车辆违停和人员安全监测需求,提出了一套完整的解决方案。作者通过踩坑实践,总结出多路视频分析的四大核心痛点:视频流解码瓶颈、推理调度混乱、内存占用爆炸和部署兼容性差。 文章详细介绍了技术选型方案,推荐使用FFmpeg+PyAV进行硬件加速解码、YOLO26+TensorRT INT8量化推理、单进程多线程的生产者-消费者架构,以及内存池复用等技术组合。该方案在RTX 4070 Ti上实现了16路4K视频30FPS稳定运行,GPU利用率达85%以上,

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 955

基于分水岭算法的图像分割

简单介绍了分水岭分割算法,分割硬币实例

weixin_44686138的博客 1876

【Altium Designer】Off grid pin解决方法

​今天我画完原理图编译时,出现了太多的黄色(出现warning警告提示)Off grid pin警告,这个警告并不是原理图电气连接出问题了,而是元器件或器件PIN脚没有和栅格对齐造成的原因。再编译还是出现这个警告。 最后经过不断翻阅网上经验和实践,才最终解决,本经验详细记录了解决该警告的有效方法。 解决方案:以下是问题解决步骤... ​

夜半少年的博客 7546

用分水岭算法实现图像分割

用分水岭算法实现图像分割

m0_64164247的博客 3916

《QGIS快速入门与应用基础》009:国内镜像源(清华大学/阿里云)下载技巧

针对国内用户下载QGIS速度慢、易中断的问题,推荐使用清华大学和阿里云两大国内镜像源,提供3-10MB/s的极速下载方案。详细解析镜像源核心优势、分步骤下载指南及校验方法,对比清华(同步快、北方优选)与阿里云(南方节点多)的特点。针对常见问题如版本延迟、404错误等提供解决方案,并介绍搭配IDM等工具实现多线程加速的进阶技巧。通过镜像源+下载工具组合,用户可高效获取QGIS安装包,为后续系统安装奠定基础。

LuckyHanMo的博客 1731

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Opencv(二)—图像分割之分水岭算法!

做图像处理时,我们可能会遇到一个问题:我们只需要图片的一部分区域,如何把图片中的某部分区域提取出来 或者 图像想要的区域用某种颜色(与其它区域颜色不一致)标记起来 ,以上描述的问题在像处理领域称为 图像分割。 说了这么多,可能还是有读者不知所云,这里我在下面放置了一张图,就是图像分割的一个应用,图像的前后对比,可以看到 人物 通过算法被很清晰地分割了出来,方便后续物体的识别跟踪。 这篇文章给大家...

小张Python 2445

Devexpress16.2.6破解工具

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

计算机视觉——OpenCV 使用分水岭算法进行图像分割

分水岭算法通过模拟自然地形来实现图像中物体的分类。在这一过程中,每个像素的灰度值被视作其高度,灰度值较高的像素形成山脊,即分水岭,而二值化阈值则相当于水平面,低于这个水平面的区域会被“淹没”。

知来者逆的博客 3541

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OpenCV——分水岭算法

C++版本OpenCV实现的分水岭算法

点云侠的博客 6276

【OpenCv】图像分割——分水岭算法

文章目录1 原理2 算法改进3 API4 实例 1 原理   分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。这种方法也称作泛洪法,对应的

weixin_53598445的博客 9513

OpenCV—图像分割中的分水岭算法原理与应用

图像分割是按照一定的原则,将一幅图像分为若干个互不相交的小局域的过程,它是图像处理中最为基础的研究领域之一。目前有很多图像分割方法,其中分水岭算法是一种基于区域的图像分割算法,分水岭算法因实现方便,已经在医疗图像,模式识别等领域得到了广泛的应用。然而基于梯度图像的直接分水岭算法容易导致图像的过分割,本文介绍了传统分水岭算法以及基于标记图像的分水岭算法的基本原理,以OpenCV自带函数watershed()为例说明了基于标记图像的分水岭算法的应用。

iracer的博客 7万+

图像处理——分水岭算法

首先感谢以下两位的博文帮助我的理解: (1)迈克老狼2012   https://www.cnblogs.com/mikewolf2002/p/3304118.html (2)-牧野-              http://blog.youkuaiyun.com/dcrmg/article/details/52498440 分水岭算法是一种图像区域分割法,在分割的过程中

fengye2two的专栏 8万+

OpenCV进行图像分割:分水岭算法(相关函数介绍以及项目实现)

在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来。图像分割是图像处理过程中一种非常重要的操作。分水岭算法将图像形象地比喻为地理学上的地形表面,实现图像分割,该算法非常有效。 二、算法原理 任何一幅灰度图像,都可以被看作是地理学上的地形表面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷。如下图所示,其中左图是原始图像,右图是其对应的“地形表面”。 如果我们向每一个山谷中“灌注”不同颜色的水(这里采用了OpenCV官网的表述,冈萨雷斯将灌注表述为在山谷中打洞

l love CV 8053

分水岭算法及其应用

在作物的农业生产中,病害是影响作物产量的重要因素。因此,农作物生长过程中病害的防治就成了一个关键问题。近些年来,计算机图像处理以及模式识别理论有了很大的发展,使得在计算机上对作物病害进行智能化诊断成为了可能。图像分割作为一个关键的阶段,其效果直接影响着后期的特征提取和病害识别,因此,准确无误地分割出病害叶片上的病斑是至关重要的。 近年来,分水岭图像分割方法因其在处理图像分割问题时表现出的...

白雾霾 351

不同分类算法的优缺点是什么?

本文从外网上摘取了几个不错的关于介绍在机器学习中不同分类方法的文章并翻译,用于记录、学习和分享。水平有限,如果文中有错误之处希望能得到大家的指正。

一只小Kevin的博客 2万+

opencv28:分水岭算法的图像分割

目标 在本章中,将学习 使用分水岭算法实现基于标记的图像分割 函数:cv2.watershed() 理论 任何灰度图像都可以看作是一个地形表面,其中高强度的像素表示山峰,低强度表示山谷。可以用不同颜色的水(标签)填充每个孤立的山谷(局部最小值)。随着水位的上升,根据附近的山峰(坡度),来自不同山谷的水明显会开始合并,颜色也不同。为了避免这种情况,要在水融合的地方建造屏障。继续填满水,建造障碍,直到所有的山峰都在水下。然后创建的屏障将返回分割结果。这就是Watershed(分水岭算法)背后的“思想”。 但

uncle_ll的博客 3645

传统图像分割——分水岭算法(watershed)

传统图像分割——分水岭算法(watershed) 文章目录传统图像分割——分水岭算法(watershed)前言一、什么是分水岭算法?二、经典的分水岭求解算法1.定义2.算法流程总结 前言 本篇文章主要梳理分水岭算法的原理,不涉及编程实现 一些经典的分水岭算法文献: [1] Vincent L, Soille P. Watersheds in digital spaces: an efficient algorithm based on immersion simulations[J]. IEEE Tr

dreaming__star的博客 2万+
上一篇: bmp 10.27 范鲁艳
下一篇: 彩色图像转YUV格式序列存取(陆)
TargetStudio
博客等级 码龄20年 3粉丝 20原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值