news 2026/6/27 7:03:05

Halcon图像锐化和图像增强、窗口的相关算子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Halcon图像锐化和图像增强、窗口的相关算子

*图像锐化和图像增强:

•图像锐化:frei_amp ()
•边缘提取算子:edges_image()
•亚像素边缘提取 :edges_sub_pix()
•骨架提取:skeleton()
•图像增强:emphasize()
•图像光照增强:illuminate()
*// 获取图像 read_image (Image, 'printer_chip/printer_chip_01') *// 图像锐化:一般是用于边缘提取,得到图像轮廓 *// Frei-Chen边缘幅值检测(基于Frei-Chen算子的图像锐化/边缘提取) *// 原理: 通过Frei-Chen卷积核计算图像梯度,输出边缘幅值(锐化后的图像) *// 参数1: 输入原始灰度图像 *// 参数2: 输出边缘幅值图像(像素值表示边缘强度,值越大边缘越明显) frei_amp (Image, ImageEdgeAmp) *// 边缘提取算子 *// 参数1: 输入原始图像 *// 参数2: 输出边缘幅值图像(每个像素的边缘强度) *// 参数3: 输出边缘方向图像(每个像素的边缘方向,角度值) *// 参数4: 边缘检测算法('canny'=Canny算法,最常用;还有'sobel'/'roberts'等) *// 参数5: 高斯平滑sigma值(>0,值越大平滑越强,边缘越少;值越小保留细节但易有噪点) *// 参数6: 边缘细化方式('nms'=非极大值抑制,仅保留边缘幅值最大的像素,得到单像素宽边缘) *// 参数7: 低阈值(Canny算法的双阈值之一,低于此值的边缘直接舍弃) *// 参数8: 高阈值(Canny算法的双阈值之一,高于此值的边缘保留,高低阈值间的边缘需连接到高阈值边缘才保留) edges_image (Image, ImaAmp, ImaDir, 'canny', 1, 'nms', 20, 40) *// 清空窗口 dev_clear_window () *// 亚像素边缘提取 * 参数1 Image 输入图像 * 参数2 Edges 输出亚像素边缘轮廓 * 参数3 'canny' 边缘检测算法 * 参数4 1 高斯平滑sigma值 * 参数5 20 低阈值 阈值越高检测到的边缘越少 * 参数6 40 高阈值 阈值越低检测到的边缘越多 * 对比度阈值区间值越高 检测的边缘(轮廓线)越少,反之检测的轮廓线越多 edges_sub_pix (Image, Edges, 'canny', 1, 20, 40) *// 清空窗口 dev_clear_window () edges_sub_pix (Image, Edges, 'canny', 1, 80, 100) *// 阈值分割 threshold (ImageEdgeAmp, Region, 30, 255) *// 骨架提取(将边缘区域细化为单像素宽的轮廓线) *// 原理: 迭代腐蚀区域,直到区域变为单像素宽的骨架,保留区域的拓扑结构 *// 参数1: 输入待细化的区域(阈值分割后的边缘区域) *// 参数2: 输出骨架区域(单像素宽的边缘轮廓) skeleton (Region, Skeleton) *// 清空窗口 dev_clear_window () *// 图像增强 *// 先对图像做低通滤波,再用原始图像减去低通图像,增强边缘和细节 *// 参数1: 输入原始图像 *// 参数2: 输出增强后的图像 *// 参数3: 低通掩膜宽度(11,奇数,掩膜越大增强效果越明显) *// 参数4: 低通掩膜高度(11,奇数,与宽度一致保证各向同性) *// 参数5: 对比度强度因子(1,>0,值越大对比度增强越显著) emphasize (Image, ImageEmphasize, 11, 11, 1) *// 清空窗口 dev_clear_window () *// illuminate--图像光照增强(模拟光照效果,提升局部亮度/对比度) *// 原理: 基于高斯函数模拟光源照射效果,增强图像局部区域的亮度 *// 参数1: 输入原始图像 *// 参数2: 输出光照增强后的图像 *// 参数3: 光源宽度(101,奇数,控制光照影响的横向范围) *// 参数4: 光源高度(101,奇数,控制光照影响的纵向范围) *// 参数5: 光照强度(0.7,取值0~1,值越大光照越强,图像越亮) illuminate (Image, ImageIlluminate, 101, 101, 0.7)

*窗口的相关算子:

•打开一个指定大小的新窗口:dev_open_window ()
•打开一个窗口自适应图像的大小:dev_open_window_fit_image ()
•获取图像大小:get_image_size()
•打开具有给定最小和最大范围的新图形窗口:dev_open_window_fit_size()
•关闭窗口(只关闭一个窗口)dev_close_window ()
•清空内容:dev_clear_window ()
•打开一个文件对话框窗口:dev_open_file_dialog()
*// 获取图像 read_image (Image, 'printer_chip/printer_chip_01') *// 获取当前窗口句柄 dev_get_window (WindowHandle) *// 指定大小打开一个窗口 * 参数1、2 打开的位置 * 参数3、4 打开的大小 * 参数5 WindowHandle1 新窗口的句柄对象 dev_open_window (0, 0, 512, 512, 'black', WindowHandle1) *// 打开一个窗口 去自适应图像的大小 dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle2) *// 获取图像大小 get_image_size (Image, Width, Height) *// 显示图片 dev_display (Image) *// 指定窗口大小去打开一个窗口来展示图像100*100区间的图像 * 打开具有给定最小和最大范围的新图形窗口,以便保留给定图像大小的宽高比 * 参数1:相对于HDevelop窗口的y坐标 * 参数2:相对于HDevelop窗口的x坐标 * 参数3: 图像宽度 * 参数4: 图像高度 * 参数5: 宽度最大值 * 参数6: 高度的最大值 * 参数7: 窗口句柄 dev_open_window_fit_size (0, 0, 100, 100, -1, -1, WindowHandle3) get_image_size (Image, Width1, Height1)//获取图像大小 dev_display (Image)//显示图片 *// 打开一个文件对话框窗口 *参数3 打开指定路径下的文件的路径 *参数4 Selection打开文件的路径 dev_open_file_dialog ('read_image', 'default', 'C:/', Selection) *// 清空内容 dev_clear_window () *// 关闭窗口(只关闭一个窗口) dev_close_window ()

希望对大家有所帮助, 感谢大家的关注和点赞。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 6:37:28

Node.JS 版本管理工具 Fnm 安装及配置(Windows)

Fnm 安装及配置(Windows) Fnm(Fast Node Manager)?? 一个快速而简单的 Node.js 版本管理工具,使用 Rust 编写。 1 安装 官网:Fnm(镜像网站 )。 下载:Fnm&#xff08…

作者头像 李华
网站建设 2026/6/19 23:51:51

Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南

Node.js NativeAddon 构建工具:node-gyp 安装与配置完全指南 node-gyp Node.js native addon build tool [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/no/node-gyp 项目基础介绍及主要编程语言 Node.js NativeAddon 构建工具(node-gyp…

作者头像 李华
网站建设 2026/6/25 11:39:29

LCD12864模块使用教程:零基础项目应用

从零开始玩转LCD12864:嵌入式开发中的“老派但靠谱”显示方案你有没有遇到过这样的场景?手里的单片机项目已经能采集传感器数据、执行控制逻辑,甚至还能通过串口把信息发给电脑——但一旦脱离上位机,设备就像个“哑巴”&#xff0…

作者头像 李华
网站建设 2026/6/21 22:05:34

[特殊字符]_微服务架构下的性能调优实战[20260110171333]

作为一名经历过多个微服务架构项目的工程师,我深知在分布式环境下进行性能调优的复杂性。微服务架构虽然提供了良好的可扩展性和灵活性,但也带来了新的性能挑战。今天我要分享的是在微服务架构下进行性能调优的实战经验。 💡 微服务架构的性…

作者头像 李华
网站建设 2026/6/18 15:30:50

Excel数据透视表:如何显示未使用的数据验证列表项

在Excel中,数据透视表是强大的数据分析工具,能够快速汇总和分析大量数据。然而,当你试图在数据透视表中显示一个包含未使用项目的数据验证列表时,可能会遇到一些挑战。本文将详细介绍如何在数据透视表中显示所有可能的项目&#x…

作者头像 李华
网站建设 2026/6/13 23:19:53

Keil5芯片包下载安装指南:手把手教程(从零实现)

Keil5芯片包下载安装指南:从零构建嵌入式开发环境(实战详解) 一个常见的“拦路虎”:为什么我的Keil找不到STM32? 你是否遇到过这样的场景?刚打开Keil Vision5,信心满满地准备创建新项目&#…

作者头像 李华