Halcon 边缘提取

文章目录

  • 算子
  • Halcon edges_image 示例
  • Halcon frei_amp 示例
  • Halcon kirsch_amp示例
  • Halcon sobel_amp示例
  • Halcon sobel_amp 算子示例
  • Halcon sobel_dir 算子示例
  • Halcon close_edges关闭图像间隙示例
  • Halcon close_edges_length关闭图像间隙示例

算子

edges_image 对于图像进行边缘提取

edges_image(Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ):使用Deriche, Lanser, Shen或者Canny 滤波器进行边缘提取参数:Image :输入图像ImaAmp:边缘振幅(梯度大小)图像ImaDir :图像边缘方向Filter:边缘算子Alpha:过滤器参数,小的值导致强平滑,但是更少的细节(canny算子相反)NMS:非最大抑制(设置为none,表示不需要使用该值)Low:滞后阈值操作的下阈值(如果不需要阈值设置,则为负值)High :滞后阈值操作的上阈值(如果不需要阈值设置,则为负值)

close_edges 关闭边缘间隙,封闭图形

close_edges(Edges, EdgeImage : RegionResult : MinAmplitude : )输入包含边缘的区域、输入振幅图像、输出包含闭合边缘的结果区域、输入最小边缘振幅( 1 ≤ MinAmplitude ≤ 255

frei_amp 获取边缘幅度

frei_amp(Image : ImageEdgeAmp : : )参数翻译(顺序对应以上参数顺序):输入图像、输出梯度图像

kirsch_amp 边缘幅度

kirsch_amp(Image : ImageEdgeAmp : : )参数输入图像、输出幅度图像、

kirsch_dir 使用Kirsch算子检测边缘(幅值和相位)

kirsch_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )
参数输入图像、输出幅度图像、输出图像边缘方向

sobel_amp 边缘提取

sobel_amp(算子)sobel_amp - 使用Sobel算子检测边缘(幅度)。sobel_amp(图片:边缘图像:滤波器方式,掩膜大小:)

boundary 对区域轮廓进行提取

boundary(Region输入区域,RegionBorder输出区域边界,BoundaryType边界的类型‘inner’或‘outer’)

skeleton 提取骨架

  求取区域骨架:skeleton算子:skeleton(Region : Skeleton : : )示例:skeleton (RegionTrans, Skeleton)RegionTrans(输入对象):输入一个区域对象Skeleton(输出对象):输出这个区域的骨架  骨架是由单个像素连接起来的

gen_contours_skeleton_xld 生成亚像素骨架轮廓

gen_contours_skeleton_xld(Skeleton : Contours : Length, Mode : )示例:gen_contours_skeleton_xld (Skeleton1, Contours2, 1, 'filter')Skeleton1(输入对象):输入骨架对象Contours2(输出对象):输出转为轮廓对象1(输入控制参数1):输入提取的轮廓线包含的最小的点数'filter'(输入控制参数2):输入过滤模式

nonmax_suppression_dir 非极大值点抑制(降噪)

nonmax_suppression_dir(EdgeAmplitude, EdgeDirection, ImageResult, ‘nms’)
参数解释:
EdgeAmplitude 输入的振幅(梯度幅值)图像。
EdgeDirection 输入的方向图像
ImageResult 输出的结果图

Halcon edges_image 示例

在这里插入图片描述

read_image (Image, 'fabrik')
edges_image (Image, ImaAmp, ImaDir, 'lanser2', 0.5, 'nms', 12, 22)
* 将幅度图像进行二值化
threshold (ImaAmp, Edges, 1, 255)
* 提取骨架
skeleton (Edges, Skeleton)
* 形成亚像素轮廓
gen_contours_skeleton_xld (Skeleton, Contours, 1, 'filter')
dev_display (Image)
dev_set_colored (6)
dev_display (Contours)

Halcon frei_amp 示例

在这里插入图片描述

read_image (Image, 'fabrik')
frei_amp (Image, ImageEdgeAmp)
threshold (ImageEdgeAmp, Region, 20, 255)
skeleton (Region, Skeleton)
dev_display (Image)
dev_set_color ('red')
dev_display (Skeleton)

Halcon kirsch_amp示例

在这里插入图片描述

read_image (Image, 'fabrik')
kirsch_amp (Image, ImageEdgeAmp)
threshold (ImageEdgeAmp, Region, 70, 255)
skeleton (Region, Skeleton)
dev_display (Image)
dev_set_color ('red')
dev_display (Skeleton)

Halcon sobel_amp示例

在这里插入图片描述

read_image (Image, 'fabrik')
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 3)
threshold (EdgeAmplitude, Region, 10, 255)
skeleton (Region, Skeleton)
dev_display (Image)
dev_set_color ('red')
dev_display (Skeleton)

Halcon sobel_amp 算子示例

在这里插入图片描述

read_image (Image, 'fabrik')
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 3)
threshold (EdgeAmplitude, Region, 10, 255)
skeleton (Region, Skeleton)
dev_display (Image)
dev_set_color ('red')
dev_display (Skeleton)

Halcon sobel_dir 算子示例

在这里插入图片描述

read_image (Image, 'fabrik')
sobel_dir (Image, EdgeAmplitude, EdgeDirection, 'sum_abs', 3)
nonmax_suppression_dir (EdgeAmplitude, EdgeDirection, ImageResult, 'nms')
threshold (ImageResult, Region, 10, 255)
dev_display (Image)
dev_set_color ('red')
dev_display (Region)

Halcon close_edges关闭图像间隙示例

在这里插入图片描述

Halcon close_edges_length关闭图像间隙示例

在这里插入图片描述

read_image (Image, 'fabrik')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowID)
sobel_amp (Image, EdgeAmplitude, 'thin_sum_abs', 3)
threshold (EdgeAmplitude, Edges, 30, 255)
close_edges (Edges, EdgeAmplitude, EdgesExtended, 15)
dev_set_color ('green')
dev_display (EdgesExtended)
dev_set_color ('red')
dev_display (Edges)

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

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

相关文章

[CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择

CUDA kernel 的 grid_size 和 block_size 选择 核函数执行配置 Execution Configuration cuda_kernel<<< Dg, Db, Ns, S >>>(...)Dg: grid 的维度和大小 (grid_size). 类型 dim3. : Dg.x * Dg.y * Dg.z 为启动的线程块(block)数.Db: 每个线程块的维度和大…

(超详细)8-YOLOV5改进-添加EMA意力机制

1、在yolov5/models下面新建一个EMA.py文件&#xff0c;在里面放入下面的代码 代码如下&#xff1a; import torch from torch import nnclass EMA(nn.Module):def __init__(self, channels, factor8):super(EMA, self).__init__()self.groups factorassert channels // sel…

MapReduce基础知识

MapReduce 1、介绍MapReduce ​ MapReduce的思想核心是“分而治之”&#xff0c;适用于大量复杂的任务处理场景&#xff08;大规模数据处理场景&#xff09;。 ​ Map负责“分”&#xff0c;即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小…

React16源码: React中的PortalComponent创建, 调和, 更新的源码实现

PortalComponent 1 &#xff09;概述 React Portal之所以叫Portal&#xff0c;因为做的就是和“传送门”一样的事情render到一个组件里面去&#xff0c;实际改变的是网页上另一处的DOM结构主要关注 portal的创建, 调和, 更新过程 2 &#xff09;源码 定位到 packages/react-…

Docker(一)简介和基本概念:什么是 Docker?用它会带来什么样的好处?

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 一、简介 本章将带领你进入 Docker 的世界。 什么是 Docker&#xff1f; 用它会带来什么样的好处&#xff1f; 好吧&#xff0c;让我们带…

python插件架构介绍

一、插件架构 在 Python 中&#xff0c;插件架构通常指的是一种软件架构模式&#xff0c;它允许开发者在不改变主应用程序代码的情况下&#xff0c;向应用程序添加新的功能或修改现有功能。这种架构使得应用程序可以通过加载外部模块或组件来扩展其功能&#xff0c;这些外部模…

【ROS2】实现自定义服务接口

1 定义服务接口 在之前创建的ROS接口功能包的基础上。 int32 num1 int32 num2 --- int32 num3 2 在CmakerLists.txt中增加如下语句&#xff0c;实现对服务接口的生成 # 为接口文件生成源代码 rosidl_generate_interfaces(${PROJECT_NAME}"msg/Student.msg""…

IP劫持的危害分析及应对策略

在当今数字化时代&#xff0c;网络安全问题备受关注&#xff0c;其中IP劫持是一种常见而危险的威胁。本文将深入探讨IP劫持的危害&#xff0c;并提供一些有效的应对策略。 第一部分&#xff1a;IP劫持的定义 IP劫持是指黑客通过各种手段获取并篡改目标IP地址的控制权&#xf…

vue3+vite:封装Svg组件

前言 在项目开发过程中&#xff0c;以svg图片引入时&#xff0c;会遇到当hover态时图片颜色修改的场景&#xff0c;我们可能需要去引入另一张不同颜色的svg图片&#xff0c;或者用css方式修改&#xff0c;为了方便这种情况&#xff0c;需要封装svg组件来自定义宽高和颜色&…

react 页签(自行封装)

思路&#xff1a;封装一个页签组件&#xff0c;包裹页面组件&#xff0c;页面渲染之后把数据缓存到全局状态实现页面缓存。 浏览本博客之前先看一下我的博客实现的功能是否满足需求&#xff0c;实现功能&#xff1a; - 页面缓存 - 关闭当前页 - 鼠标右键>关闭当前 - 鼠标右…

Endnote文章编号从10开始

前部分章节已经写好&#xff0c;后续添加&#xff0c;endnote参考文献需要从特定序号如10开始 知乎回答 在word中点击Endnote&#xff0c;instant Formatting is on右下角有一个小箭头&#xff0c; 点开箭头后点击layout, 下边有一个Start with bibliography 里面输入要开始的…

Python中类的继承实现

""派生类继承了基类的一切"&#xff0c;这里创建基类曲线&#xff0c;派生类有椭圆。派生类调用基类的方法&#xff0c;只需方法名前加上基类基类名作为前缀&#xff0c;再将派生类的self和其他参数传入。 当派生类与基类有同名的方法时&#xff0c;调用的是派…

按键+数码管

key.c #include "key.h" //把led.h文件包含进来 #include "system.h" //把timer0.h文件包含进来 #include "smg.h"extern uint num; char key_value; //有按键按下 char key_shourtflag;//没有按键按下uint KeyScan () //按键扫描函数 {…

Linux中关于head命令详解

head的作用 head用于查看文件的开头部分的内容。 head的参数 -q隐藏文件名-v 显示文件名-c<数目>显示的字节数-n<数目>显示的行数 head的案例 # 查看yum.log前五行内容 head -5 yum.log

vue2打包

首先&#xff0c;请确保您已经安装了Vue CLI。 打开终端或命令提示符&#xff0c;进入您的Vue项目的根目录。 运行以下命令来安装所需的依赖项&#xff1a; npm install安装完成后&#xff0c;运行以下命令来打包您的Vue项目&#xff1a; npm run build这将在您的项目根目录…

Cortex-M3/M4内核NVIC及HAL库函数详解(4):使用HAL库配置外部中断

0 工具准备 Keil uVision5 Cortex M3权威指南&#xff08;中文&#xff09; Cortex M3与M4权威指南 stm32f407的HAL库工程 STM32F4xx中文参考手册 1 使用HAL库配置外部中断 前面我们已经熟悉了有关内核部分的寄存器配置&#xff0c;接下来我们结合stm32f407的GPIO外设&#xf…

站长为什么都说WordPress太复杂不会用要放弃?

网络上经常看到有站长说要放弃WordPress&#xff0c;理由各有不同&#xff0c;比如有些说WordPress太复杂不会用&#xff1b;有些说WordPress是国外建站系统&#xff0c;在国内用来搭建访问速度太慢&#xff1b;也有些说WordPress是针对谷歌优化的&#xff0c;不适合国内的搜索…

UE 可靠UDP实现原理

发送 我们的消息发送都是通过 UChannel 来处理的&#xff0c;通过调用 UChannel::SendBunch 统一处理。 发送的 Bunch 是以 FOutBunch 的形式存在的。当 bReliable 为 True 的时候&#xff0c;表示 Bunch 是可靠的。 发送逻辑直接从UChannel::SendBunch处开始分析 1、大小限…

【算法与数据结构】1049、LeetCode 最后一块石头的重量 II

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题需要得到石头之间两两粉碎之后的最小值&#xff0c;那么一个简单的思路就是将这堆石头划分成大小相…

【MySQL】where和having的区别

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;数据库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 用途: 使用位置: 操作对象: 聚合函数: 示例&#xff1a; 结语 我的其他博客 前言 数据库中的 WHERE 和 HAVING 子句在 SQL 查…