【图像算法】彩色图像分割专题七:基于分水岭的彩色分割

简介:

【图像算法】彩色图像分割专题七:基于分水岭的彩色分割

      SkySeraph July 7th 2011  HQU

Email:zgzhaobo@gmail.com    QQ:452728574

Latest Modified Date:July 7th 2011 HQU

------------------------------------------------------------------------------------------------------------------------

》原理

分水岭算法有好好几种实现算法,拓扑学,形态学,浸水模拟和降水模拟等,最常用的就是Soille和Vincent首先提出的模拟浸没的算法,该算法分割结果效果好,速度快,具有较强的实用性,其简要概括如下。其它更多细节见后文给出的参考资料,不再细述。

Vincent和Soille算法包括2个部分:第一个部分是排序;第二部分为泛洪。算法描述如下:

(1)将根据图像中每个像素的RGB值根据公式Gray=0.299R+0.587G+0.114B得到与之对应的灰度值。

(2)根据Sobel算子得到图像的梯度。(边缘像素的梯度为其邻域像素的梯度,梯度范围为0-255)

(3)对梯度进行从小到大的排序,相同的梯度为同一个梯度层级。

(4)处理第一个梯度层级所有的像素,如果其邻域已经被标识属于某一个区域,则将这个像素加入一个先进先出的队列。

(5)先进先出队列非空时,弹出第一个元素。扫描该像素的邻域像素,如果其邻域像素的梯度属于同一层(梯度相等),则根据邻域像素的标识来刷新该像素的标识。一直循环到队列为空。

(6)再次扫描当前梯度层级的像素,如果还有像素未被标识,说明它是一个新的极小区域,则当前区域的值(当前区域的值从0开始计数)加1后赋值给该为标识的像素。然后从该像素出发继续执行步骤5的泛洪直至没有新的极小区域。

(7)返回步骤4,处理下一个梯度层级的像素,直至所有梯度层级的像素都被处理。流程如下:

------------------------------------------------------------------------------------------------------------------------

》源码

核心代码(部分源码来源网络,修改并做了很详细的注释)

 

函数模块

 

-----------------------------------------------------------------------------------------------------------------------

》效果

找了一辆车做测试,效果勉强,运行速度很慢。

原图:

轮廓:

轮廓图:

------------------------------------------------------------------------------------------------------------------------

》参考资料:

Watershed (image processing): http://en.wikipedia.org/wiki/Watershed_(image_processing)

IMAGE SEGMENTATION AND MATHEMATICAL MORPHOLOGY http://cmm.ensmp.fr/~beucher/wtshed.html

分水岭算法(Watershed Algorithm):http://hi.baidu.com/changfeng01200/blog/item/0ed6920b51f82e1794ca6bc5.html

分水岭分割方法:http://hi.baidu.com/huangwenzhixin/blog/item/039d5713c81bf62add5401e2.html

分水岭算法简单实现http://blog.csdn.net/tt2com/article/details/6321610

分水岭分割算法http://hi.baidu.com/%CA%D8%CD%FB%CC%EC%B1%DF%B5%C4%D4%C2/blog/item/57926db72b319ee531add1d2.html

 

------------------------------------------------------------------------------------------------------------------------

Author:         SKySeraph

Email/GTalk: zgzhaobo@gmail.com    QQ:452728574

From:         http://www.cnblogs.com/skyseraph/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

目录
相关文章
|
算法 计算机视觉
OpenCV(四十):图像分割—漫水填充
OpenCV(四十):图像分割—漫水填充
691 0
|
存储 人工智能 监控
大牛直播SDK在四足机器人和无人机巡检中的创新应用方案
在工业4.0和智能化浪潮下,传统巡检方式正经历深刻变革。四足机器人与无人机凭借灵活机动性和高效巡检能力崭露头角,而大牛直播SDK则赋予其实时直播与智能互动功能。本文介绍大牛直播SDK的核心优势、在四足机器人和无人机巡检中的应用方案,以及技术实现要点和未来展望,展示智能巡检的广阔前景。
391 6
|
机器学习/深度学习 编解码 算法
YOLOv8改进 | 主干网络 | 增加网络结构增强小目标检测能力【独家创新——附结构图】
YOLOv8在小目标检测上存在挑战,因卷积导致信息丢失。本文教程将原网络结构替换为更适合小目标检测的backbone,并提供结构图。通过讲解原理和手把手教学,指导如何修改代码,提供完整代码实现,适合新手实践。文章探讨了大特征图对小目标检测的重要性,如细节保留、定位精度、特征丰富度和上下文信息,并介绍了FPN等方法。YOLOv8流程包括预处理、特征提取、融合和检测。修改后的网络结构增加了上采样和concatenate步骤,以利用更大特征图检测小目标。完整代码和修改后的结构图可在文中链接获取。
10374 2
|
数据挖掘 API 数据安全/隐私保护
淘宝商品评论API接口全攻略
淘宝商品评论API接口为电商从业者提供重要数据支持,帮助分析商品评价和舆情。通过淘宝开放平台或第三方数据服务提供商可获取该接口。使用时需注册账号、创建应用并获取密钥。调用流程包括参数准备、签名生成、发送请求及处理响应。Python示例代码展示了具体实现方法。注意事项包括频率限制、数据更新和安全性。 简要步骤: 1. **淘宝开放平台**:注册账号、入驻、创建应用、获取密钥。 2. **第三方服务**:选择准确、稳定且价格合理的提供商。 3. **接口调用**:准备参数、生成签名、发送请求、解析响应。 4. **注意事项**:遵守频率限制,确保数据安全与及时更新。
393 28
|
存储 JSON API
淘宝商品详情API接口概述与JSON数据示例
淘宝商品详情API是淘宝开放平台提供的核心接口之一,为开发者提供了获取商品深度信息的能力。以下是技术细节和示例:
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
1506 5
|
SQL 数据可视化 数据挖掘
想让Excel表格设计更美观?试试这几款好用工具!
Excel表格设计在项目管理和数据分析中至关重要。本文推荐四款辅助工具:板栗看板、Excel自动图表助手、Think-Cell Chart 和 Power BI,分别在任务管理、图表生成、数据可视化等方面表现突出,帮助你设计出更专业、美观的表格。
1609 2
|
数据处理 Python
如何优化Python读取大文件的内存占用与性能
如何优化Python读取大文件的内存占用与性能
1124 0
|
存储 算法
【树】数据结构——树和二叉树的概念&笔记
【树】数据结构——树和二叉树的概念&笔记
|
机器学习/深度学习 人机交互 API
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
5815 0

热门文章

最新文章