Halcon区域分割之分水岭分割法

        现实中我们见到过有山有湖的景象,那么一定是水绕山、山围水的情形。当然可在需要的时候人工构筑分水岭,以防集水盆之间的互相穿透。而区分高山与水的界线以及湖与湖之间的间隔,就是分水岭。
       分水岭分割法是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看做是地形学上的拓扑地貌,图像中的每一点像素的灰度值表示该点的海拔高度,高灰度值代表山脉,低灰度值代表盆地,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界形成了分水岭。
      有时直接使用图像灰度值代表高度来实现分水岭算法太困难,需要进行距离变换,下面简单介绍距离变换。
      距离变换是针对二值图像的一种变换。在二维空间中,一幅二值图像可以认为仅仅包括目标和背景两种像素,目标的像素值为1,背景的像素值为0。距离变换的结果不是另一幅二值图像,而是一幅灰度值图像,即距离图像,图像中每个像素的灰度值为该像素与距其最近的背景像素间的距离,距离变换也就是此点的灰度值,代表此点到边界的距离。距离边界越近,灰度值越小;距离边界越远,灰度值越大。中心像素的灰度值最大,边界为零。
      最常见的距离变换算法是通过连续的腐蚀操作来实现的,腐蚀操作的停止条件是所有前景像素都被完全腐蚀。因此,根据腐蚀的先后顺序,可以得到各个前景像素点到前景中心骨架像素点的距离。根据各个像素点的距离值,设置不同的灰度值。这样就完成了二值
      下面简单介绍使用分水岭分割法时可能用到的算子。

      1):distance _ transform ( Region ; DistanceImage : Metric . Foreground . Width , Height )
      功能:对区域作距离变换,获得距离变换图。
      Region :距离变换目标区域。
      Distancelmage :获得距离信息图。
      Metric :度量距离类型,包括' City - block ',' chessboard ',' euclidean '
      Foreground :为' true ',则针对前景区域( Region )作距离变换;为" false ',则针对背景区域(整个区域减去 Region )作距离变换。
      Width 、 Height :输出图像的宽、高。
      2):watersheds ( Image : Basins . Watersheds )
      功能:直接提取图像的盆地区域和分水岭区域。
      Image :需要分割的图像(图像类型只能是 byte 、uint2、 real )。
      Basins :盆地区域。
      Watersheds :分水岭区域(至少一个像素宽)。
      3):watersheds _ threshold ( Image : Basins ; threshold )
      功能:阈值化提取分水岭盆地区域。
      Image :需要分割的图像(图像类型只能是 byte 、uint2、 real )。
      Basins :分割后得到的盆地区域。
      Threshold :分割时的阈值。
      应用分水岭分割法的算子时分为两步:第一步计算分水岭不使用阈值,如用算子 watersheds ;第二步使用阈值,此阈值是合并相邻两个盆地区域时使用的,如果两个盆地的最小灰度值与分水岭上最小灰度值的差的最大值都小于此阈值,那么这两个盆地区域就会合并。假设B1、B2分别表示相邻盆地区域的最小灰度值, W 表示两盆地的分水岭最小灰度值,若满足式(5-47),则分水岭操作会被取消。 Max ( W - BI , W -B2)< Threshold

案例分析

目标:获取圆形区域内矩形区域

疑难点:目标区域连通

   

  解决方案:

1):开运算分割

2):分水岭分割

代码

read_image (Image1, 'E:/数据/资源图片/截图/2.png')
rgb1_to_gray (Image1, GrayImage)
scale_image_max (GrayImage, ImageScaleMax)
threshold (ImageScaleMax, Region, 0, 120)
gauss_filter (ImageScaleMax, ImageGauss1, 7)
watersheds (ImageGauss1, Basins1, Watersheds1)
intersection (Basins1, Region, SegmentedPellets)
region_features (SegmentedPellets, 'area', Value)
select_shape (SegmentedPellets, SelectedRegions, 'area', 'and', 1500, 4999)
region_features (SelectedRegions, 'row', RowValue)
select_shape (SegmentedPellets, SelectedRegions, 'row', 'and', min(RowValue)-5, min(RowValue)+5)
dev_display (Image1)
dev_display (SelectedRegions)

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

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

相关文章

LLM | 论文精读 | CVPR | SelTDA:将大型视觉语言模型应用于数据匮乏的视觉问答任务

论文标题&#xff1a;How to Specialize Large Vision-Language Models to Data-Scarce VQA Tasks? Self-Train on Unlabeled Images! 作者&#xff1a;Zaid Khan, Vijay Kumar BG, Samuel Schulter, Xiang Yu, Yun Fu, Manmohan Chandraker 期刊&#xff1a;CVPR 2023 DOI…

基于JavaWeb+MySQL实现口算题卡

爱 math 口算题卡 1. 总体要求 综合运用软件工程的思想&#xff0c;协同完成一个软件项目的开发&#xff0c;掌软件工程相关的技术和方法&#xff1b;组成小组进行选题&#xff0c;通过调研完成项目的需求分析&#xff0c;并详细说明小组成员的分工、项目的时间管理等方面。根…

Linux云计算 |【第五阶段】CLOUD-DAY8

主要内容&#xff1a; 掌握DaemonSet控制器、污点策略&#xff08;NoSchedule、Noexecute&#xff09;、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP&#xff08;服务名自动发现&#xff09;、&#xff08;Nodeport、Headless&#xff09;、Ingress控制器 一…

机器学习1_机器学习定义——MOOC

一、机器学习定义 定义一 1959年Arthur Samuel提出机器学习的定义&#xff1a; Machine Learning is Fields of study that gives computers the ability to learn without being explicitly programmed. 译文&#xff1a;机器学习是这样的领域&#xff0c;它赋予计算机学习的…

无人机维护保养、部件修理更换技术详解

无人机作为一种精密的航空设备&#xff0c;其维护保养和部件修理更换是确保飞行安全、延长使用寿命的重要环节。以下是对无人机维护保养、部件修理更换技术的详细解析&#xff1a; 一、无人机维护保养技术 1. 基础构造理解&#xff1a; 熟悉无人机的基本构造&#xff0c;包括…

HCIP--以太网交换安全(总实验)

实验背景 假如你是公司的网络管理员&#xff0c;为了提高公司网络安全性&#xff0c;你决定在接入交换机部署一些安全技术&#xff1a;端口隔、端口安全、DHCP snooping、IPSG。 实验拓扑图 实验的要求&#xff1a; 1.在R1、R2连接在GE0/0/1和GE0/0/2接口下&#xff0c;均划…

Qt中的Model与View 3:从样例出发理解QStringListModel和QListView

目录 Ui文件设计如下&#xff1a; 初始化窗口 这里&#xff0c;就是一经典的例子 你可以看到&#xff0c;我们的环境变量是一个经典的List列表&#xff0c;其中承载的就是我们的字符串。我们现在来仿照着搞一个&#xff1a; Ui文件设计如下&#xff1a; 我们下面来逐一演示用…

【VSCode】配置

安装插件 C vscode-icons gdb调试 https://www.bilibili.com/video/BV15U4y1x7b2/?spm_id_from333.999.0.0&vd_sourcedf0ce73d9b9b61e6d4771898f1441f7f https://www.bilibili.com/video/BV1pU4y1W74Z?spm_id_from333.788.recommend_more_video.-1&vd_sourcedf0…

【开发心得】筑梦上海:项目风云录(10)

目录 经典代码背后的故事 贵人相助与价值创造的跳槽哲学 从甲方现场到职场晋升 经典代码背后的故事 写完上一篇故事,本来想休息一段时间,再把思路整理一下。 但是感觉前面的故事里,涉及的故事多,涉及的技术和代码少,很多小伙伴私信希望能够多一些技术和代码的分享。 好…

编译原理第一次实验报告

源代码及附件&#xff1a;编译原理实验一源程序及附件资源-CSDN文库实验题目 实验要求 实验设计 前两部分指出了实验的宏观把控&#xff0c;为了具体实施实验&#xff0c;我们需要预先为实验做出如下设计&#xff1a; 本次实验我选取了C语言的一个子集进行设计词法分析器&…

Elastix-基于ITK的医学图像配准库

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 Elastix是什么&#xff1f; Elastix是一个广泛使用的医学图像配准库&#xff0c;旨在帮助研究人员和临床医生处理和分析医学影像…

清华双臂机器人扩散大模型RDT:先预训练后微调,支持语言、图像、动作多种输入

前言 通过上文介绍的GR2&#xff0c;我们看到了视频生成模型在机器人训练中的应用&#xff0c;无独有偶&#xff0c;和GR2差不多一个时期出来的清华RDT&#xff0c;其模型架构便基于视频生成架构DiT改造而成(当然&#xff0c;该清华团队其实也在DiT之前推出了U-ViT&#xff0c…

远程连接服务

目录 一、远程连接服务器简介 二、连接加密技术简介 三、认证阶段 四、ssh实验 1.修改ssh服务器的端口号 2.拒绝root账户远程登录 3.允许特定用户ssh登录&#xff0c;其他用户无法登录 4.ssh-keygen 一、远程连接服务器简介 概念&#xff1a; 远程连接服务器通过文字或…

YOLOv5之Common.py

文章目录 1.学习目的2.网络模型![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/67b8dbd00c9b4034ba370fc8b8a6031a.jpeg)3.common.py分析 1.学习目的 YOLOv5中最关键一个模型类 2.网络模型 3.common.py分析 # Ultralytics YOLOv5 &#x1f680;, AGPL-3.0 license…

获取Windows计算机信息的一些常用命令

一、获取Windoiws计算机基本信息 1.1、获取系统详细信息 # systeminfo的详细用法帮助命令 systeminfo /? 通过获取系统信息可以了解系统版本内容、硬件信息、域信息和补丁情况。 systeminfo 1.2、获取系统已经启动的服务 # net的详细用法帮助命令 net /? 1.2.1、获取系…

通过 codespaces + ipad 来进行算法训练

目录 零、前言 一、环境搭建 二、DockerFile 2.1 主要流程 2.2 个人模板 零、前言 最近遇到了翘不了的水课&#xff0c;想在课上写题&#xff0c;但是游戏本一个是太重&#xff0c;一个是续航不行&#xff0c;然后想到了在Ipad 上通过云IDE来码题。 一开始用的腾讯云的 C…

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标&#xff0c;跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源&#xff0c;并使用图形、表格、热图等将数据…

深入理解Redis的四种模式

Redis是一个内存数据存储系统&#xff0c;支持多种不同的部署模式。以下是Redis的四种主要部署模式。 1、单机模式 单机模式是最简单的部署模式&#xff0c;Redis将数据存储在单个节点上。这个节点包括一个Redis进程和一个持久化存储。单机模式非常适合小型应用程序或者开发和…

uln2003驱动28BYJ-48步进电机

欢迎入群共同学习交流 时间记录&#xff1a;2024/11/2 一、模块解析 1.uln2003 E脚&#xff1a;接GND COM脚&#xff1a;接VCC外部电源 1-7B&#xff1a;输入引脚 1-7C&#xff1a;输出引脚&#xff0c;输入与输出反向 无法输出高电平&#xff0c;外围电路需要接上拉电路…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目&#xff1a;零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南&#xff0c;涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn&#xff0c;开发者可以快速构建现代化的 Web API…