Halcon 边缘提取

文章目录

  • 算子
  • [Halcon edges_image 示例](#Halcon edges_image 示例)
  • [Halcon frei_amp 示例](#Halcon frei_amp 示例)
  • [Halcon kirsch_amp示例](#Halcon kirsch_amp示例)
  • [Halcon sobel_amp示例](#Halcon sobel_amp示例)
  • [Halcon sobel_amp 算子示例](#Halcon sobel_amp 算子示例)
  • [Halcon sobel_dir 算子示例](#Halcon sobel_dir 算子示例)
  • [Halcon close_edges关闭图像间隙示例](#Halcon close_edges关闭图像间隙示例)
  • [Halcon close_edges_length关闭图像间隙示例](#Halcon close_edges_length关闭图像间隙示例)

算子

edges_image 对于图像进行边缘提取

c 复制代码
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 关闭边缘间隙,封闭图形

c 复制代码
close_edges(Edges, EdgeImage : RegionResult : MinAmplitude : )

输入包含边缘的区域、

输入振幅图像、

输出包含闭合边缘的结果区域、

输入最小边缘振幅( 1 ≤ MinAmplitude ≤ 255)

frei_amp 获取边缘幅度

c 复制代码
frei_amp(Image : ImageEdgeAmp : : )

参数翻译(顺序对应以上参数顺序):

输入图像、

输出梯度图像

kirsch_amp 边缘幅度

c 复制代码
kirsch_amp(Image : ImageEdgeAmp : : )

参数

输入图像、

输出幅度图像、

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

c 复制代码
kirsch_dir(Image : ImageEdgeAmp, ImageEdgeDir : : )
参数

输入图像、

输出幅度图像、

输出图像边缘方向

sobel_amp 边缘提取

c 复制代码
sobel_amp(算子)

sobel_amp - 使用Sobel算子检测边缘(幅度)。

sobel_amp(图片:边缘图像:滤波器方式,掩膜大小:)

boundary 对区域轮廓进行提取

c 复制代码
boundary(Region输入区域,
		RegionBorder输出区域边界,
		BoundaryType边界的类型'inner'或'outer')

skeleton 提取骨架

c 复制代码
  求取区域骨架:skeleton

算子:skeleton(Region : Skeleton : : )

示例:skeleton (RegionTrans, Skeleton)

RegionTrans(输入对象):输入一个区域对象

Skeleton(输出对象):输出这个区域的骨架  骨架是由单个像素连接起来的

gen_contours_skeleton_xld 生成亚像素骨架轮廓

c 复制代码
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 非极大值点抑制(降噪)

c 复制代码
nonmax_suppression_dir(EdgeAmplitude, EdgeDirection, ImageResult, 'nms')
参数解释:
EdgeAmplitude 输入的振幅(梯度幅值)图像。
EdgeDirection 输入的方向图像
ImageResult 输出的结果图

Halcon edges_image 示例

c 复制代码
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 示例

c 复制代码
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示例

c 复制代码
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示例

c 复制代码
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 算子示例

c 复制代码
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 算子示例

c 复制代码
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关闭图像间隙示例

c 复制代码
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)
相关推荐
墨染天姬4 小时前
【AI】端侧AIBOX可以部署哪些智能体
人工智能
AI成长日志4 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
2501_948114244 小时前
2026年大模型API聚合平台技术评测:企业级接入层的治理演进与星链4SAPI架构观察
大数据·人工智能·gpt·架构·claude
小小工匠4 小时前
LLM - awesome-design-md 从 DESIGN.md 到“可对话的设计系统”:用纯文本驱动 AI 生成一致 UI 的新范式
人工智能·ui
黎阳之光4 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
小超同学你好4 小时前
面向 LLM 的程序设计 6:Tool Calling 的完整生命周期——从定义、决策、执行到观测回注
人工智能·语言模型
智星云算力5 小时前
本地GPU与租用GPU混合部署:混合算力架构搭建指南
人工智能·架构·gpu算力·智星云·gpu租用
jinanwuhuaguo5 小时前
截止到4月8日,OpenClaw 2026年4月更新深度解读剖析:从“能力回归”到“信任内建”的范式跃迁
android·开发语言·人工智能·深度学习·kotlin
xiaozhazha_5 小时前
效率提升80%:2026年AI CRM与ERP深度集成的架构设计与实现
人工智能
枫叶林FYL5 小时前
【自然语言处理 NLP】7.2.2 安全性评估与Constitutional AI
人工智能·自然语言处理