【issue-halcon例程学习】edges_color.hdev
例程功能
演示如何使用edges_color,展示只能从彩色图像中提取某些边缘的图像,说明edges_color和edges_image输出之间的差异。
代码如下
dev_update_off ()
read_image (Image, 'olympic_stadium')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_set_part (0, 0, Height - 1, Width - 1)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
Message := 'Color image'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Convert the color image to a gray value image. Note that there is no contrast
* between the soccer field and the track in the gray value image.
rgb1_to_gray (Image, GrayImage)
dev_display (GrayImage)
Message := 'Gray value image'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Compute the color edges without non-maximum suppression and hysteresis
* thresholding, i.e., the raw edge amplitude image. Note that there is a clearly
* visible edge between the soccer field and the track in the color edge image.
edges_color (Image, ImaAmp, ImaDir, 'canny', 1, 'none', -1, -1)
dev_display (ImaAmp)
Message := 'Color edge image'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Compute the gray value edges without non-maximum suppression and
* hysteresis thresholding, i.e., the raw edge amplitude image. Note that there is
* no visible edge between the soccer field and the track in the gray value edge
* image.
edges_image (GrayImage, ImaAmpGray, ImaDirGray, 'canny', 1, 'none', -1, -1)
dev_display (ImaAmpGray)
Message := 'Gray value edge image'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Now perform the color edge extraction including non-maximum suppression
* and hysteresis thresholding. Note the segmented edge between the soccer
* field and the track.
edges_color (Image, ImaAmpHyst, ImaDirHyst, 'canny', 1, 'nms', 20, 40)
threshold (ImaAmpHyst, RegionColor, 1, 255)
skeleton (RegionColor, EdgesColor)
dev_display (Image)
dev_set_color ('blue')
dev_display (EdgesColor)
Message := 'Segmented color edges'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Now perform the gray value edge extraction including non-maximum
* suppression and hysteresis thresholding. Note the absence of an edge
* between the soccer field and the track.
edges_image (GrayImage, ImaAmpGrayHyst, ImaDirGrayHyst, 'canny', 1, 'nms', 20, 40)
threshold (ImaAmpGrayHyst, RegionGray, 1, 255)
skeleton (RegionGray, EdgesGray)
dev_display (GrayImage)
dev_set_color ('blue')
dev_display (EdgesGray)
Message := 'Segmented gray value edges'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
stop ()
* Now display everything again, while only showing the part of the image
* containing the soccer field and the track.
Row1 := 220
Col1 := 215
Row2 := 399
Col2 := 489
dev_set_part (Row1, Col1, Row2, Col2)
dev_display (Image)
stop ()
dev_display (GrayImage)
stop ()
dev_display (ImaAmp)
stop ()
dev_display (ImaAmpGray)
stop ()
dev_display (Image)
dev_set_color ('blue')
dev_display (EdgesColor)
stop ()
dev_display (GrayImage)
dev_set_color ('blue')
dev_display (EdgesGray)
要点
- 例程中着重说明图像中足球场和跑道两个区域间几乎没有对比度。以此为难点分别用
edges_color和edges_image分割图像边缘。
没有对比度意味着灰度化后足球场和跑道区域间边缘特征不明显(看起来像一块区域),后接edges_image确实没有检测出足球场边框。
edges_color直接对彩色图像进行边缘提取,效果会好于edges_image方法。两个算子的参数相同,不同点在于入参图像分别为彩色图像和灰度图像。
edges_color——使用 Deriche、Lanser、Shen 或 Canny 过滤器提取边缘;
Image——入参,待处理图像;
ImaAmp——出参,边缘幅度(梯度)分割结果;
ImaDir——出参,边缘方向分割结果;
Filter——入参,过滤器;
Alpha——入参,滤镜参数(值越小,平滑效果越强,细节越少,canny算子相反);
NMS——入参,极大值抑制;
Low——入参,滞后阈值分割的低阈值(不需要则置negative);
High——入参,滞后阈值分割的高阈值(不需要则置negative);
相关文章:
【issue-halcon例程学习】edges_color.hdev
例程功能 演示如何使用edges_color,展示只能从彩色图像中提取某些边缘的图像,说明edges_color和edges_image输出之间的差异。 代码如下 dev_update_off () read_image (Image, olympic_stadium) get_image_size (Image, Width, Height) dev_close_wind…...
设计模式—行为型模式之备忘录模式
设计模式—行为型模式之备忘录模式 备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模…...
CMS如何调优
业务JVM频繁Full GC如何排查 原则是先止损,再排查。 FGC的原因是对象晋升失败或者并发模式失败,原因都是老年代放不下晋升的对象了。 1.可能是大对象导致的内存泄漏。快速排查方法:观察数据库网络IO是否和FGC时间点吻合,找到对应…...
在PyCharm中安装GitHub Copilot插件,login之后报出如下错误:
Sign in failed. Reason: Request signInInitiate failed with message: connect ECONNABORTED 20.205.243.166:443, request id: 7, error code: -32603 前提: 设置网址:https://github.com/settings/copilot,已设置为允许 或者࿱…...
L1-093 猜帽子游戏(Java)
宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有…...
JVM篇--JVM调优高频面试题
1 说一下 JVM 调优的工具? JDK 自带了很多监控工具,都位于 JDK 的 bin 目录下,其中最常用的是jconsole 和 jvisualvm 这两款视图监控工具。 jconsole:用于对 JVM 中的内存、线程和类等进行监控; jvisualvm:…...
微软 AD 介绍 | 安全建议 | 防护
介绍: 什么是Active Directory(AD)? Active Directory 是由 微软开发的目录服务,用于存储和管理网络中的资源,如计算机、用户、组和其他网络对象。允许组织管理员轻松地管理和验证网络中的用户和计算机。 …...
React16源码: React中的reconcileChildren的源码实现
reconcileChildren 1 )概述 在更新了一个节点之后,拿到它的props.children要根据这个children里面的 ReactElement 来去创建子树的所有的 fiber 对象要根据 props.children 来生成 fiber 子树,然后判断 fiber 对象它是否是可以复用的 因为我…...
幻兽帕鲁Docker服务端搭建
幻兽帕鲁Docker服务端搭建 各种命令 https://bbs.saraba1st.com/2b/thread-2168983-1-1.html 存档恢复 这里直接看这个工程的readme就行:https://github.com/yoko-murasame/palworld-host-save-fix 其他参考:https://forum.gamer.com.tw/C.php?bsn7…...
【ARM Cortex-M 系列 1.1 -- Cortex-M33 与 M4 差异 详细介绍】
请阅读【嵌入式开发学习必备专栏 之 Cortex-Mx 专栏】 文章目录 背景Cortex-M33 与 M4 差异Cortex-M33Cortex-M4关系和差异举例说明 背景 在移植 RT-Thread 到 瑞萨RA4M2(Cortex-M33)上时,遇到了hardfault 问题,最后使用了Cortex…...
docker 部署及命令
一、容器概述 1、为什么要用到容器? ①容器可以屏蔽底层操作系统的差异性,让业务应用不管在哪里都是使用容器的环境运行,从而保证开发测试环境与生产环境的一致性 ②容器部署起来非常便捷和迅速,缩短开发测试部署的周期时间 2…...
API接口安全总结
接口分类 HTTP接口 RPC接口(客户端和服务器端的连接 例如游戏登陆)非web协议,PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务。当两个物理分离的子系统需要建立逻辑上的关联时,R…...
性能优化-HVX 指令介绍
「发表于知乎专栏《移动端算法优化》」 本文主要介绍了 HVX 指令相关的知识,包括 HVX 寄存器相关内容,指令的背景依赖,部分常用 intrinsic HVX 指令。具体指令的详细内容及使用还需阅读 HVX 的指令文档,以及细致的实践操作。 &…...
web安全思维导图(白帽子)
web安全思维导图(白帽子) 客户端脚本安全 服务端应用安全 白帽子讲web安全 安全运营体系建设...
美,英,法,德、意大利和西班牙的geojson,以及区域json
美,英,法,德、意大利和西班牙的geojson文件 json地址 https://pan.baidu.com/s/1nio1bV_j-jAEVqgEHXWsNw?pwdqwer#list/path/GEOJSON 感谢大佬提供的 大佬连接 大佬的知乎原地址 国内geojson获取工具地址 http://dauser: ,toke…...
在Windows虚拟机中挂载IP代理的流程
在虚拟机中挂载IP代理的步骤通常依赖于所使用的虚拟机软件(如VMware、VirtualBox等)以及代理服务器类型(HTTP/HTTPS/SOCKS)。以下是一个通用流程: 在Windows虚拟机中设置网络代理以使用代理IP: 1. SOCKS或H…...
软考之软件工程
一、瀑布模型 严格区分阶段,每个阶段因果关系紧密相连,只适合需求明确的项目 缺点:软件需求完整性、正确性难确定;严格串行化,很长时间才能看到结果;瀑布模型要求每个阶段一次性完全解决该阶段工作…...
微信小程序(六)tabBar的使用
注释很详细,直接上代码 上一篇 新增内容: 1. 标签栏文字的内容以及默认与选中颜色 2. 标签栏图标的默认样式与选中样式 3. 标签选项路径页面 4.标签栏背景颜色 🐼(文末补充)设置标签栏后为什么navigator标签无法跳转页…...
写Shell以交互方式变更Ubuntu的主机名
以下是一个简单的 Bash 脚本,用于以交互方式更改 Ubuntu 20 系统的主机名: 1#!/bin/bash 2 3# 提示用户输入新的主机名 4read -p "请输入新的系统名称(主机名): " new_hostname 5 6# 检查是否输入了新的主机名 7if [ -…...
如何快速上手tuic:从零开始的安装与配置教程
如何快速上手tuic:从零开始的安装与配置教程 【免费下载链接】tuic 项目地址: https://gitcode.com/gh_mirrors/tu/tuic tuic是一款高效的GitHub加速工具,能够帮助用户解决GitHub访问速度慢、连接不稳定等问题,让开发者更流畅地获取G…...
Keras图像分割模型训练完整指南:从参数配置到性能评估
Keras图像分割模型训练完整指南:从参数配置到性能评估 【免费下载链接】image-segmentation-keras Implementation of Segnet, FCN, UNet , PSPNet and other models in Keras. 项目地址: https://gitcode.com/gh_mirrors/im/image-segmentation-keras 图像分…...
RKE2集群里crictl拉镜像总报‘device busy’?别急着重启,先排查这个安全软件
RKE2集群crictl拉镜像报"device busy"的深度排查指南 当你正在RKE2集群中执行关键部署,突然遇到crictl pull命令报出"failed to extract layer"和"device or resource busy"错误时,那种感觉就像在高速公路上突然爆胎。大多…...
【Python内存管理黄金法则】:20年SRE亲授生产环境OOM崩溃前的5个关键干预点
第一章:Python智能体内存管理策略的底层认知与生产意义Python智能体(如基于LLM的Agent系统)在长时间运行、多轮对话与状态缓存场景下,内存行为远超传统脚本应用。其内存压力不仅来自模型权重加载,更源于动态生成的中间…...
Unity物理游戏开发:如何用FixedTimestep优化不同设备的性能表现
Unity物理游戏开发:动态调整FixedTimestep实现跨设备性能优化 移动端游戏开发者常面临一个核心矛盾:物理模拟精度与设备性能的平衡。当你的游戏在高端设备上流畅运行,却在低端机型出现卡顿时,问题往往出在Fixed Timestep的静态配置…...
剑指offer-74、n个骰⼦的点数
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
优盈杯数据泄露事件复盘:隐私保护的警钟
300 万张照片泄露:优盈杯隐私防线的崩塌2014 年 9 月,Clarifai 公司首席执行官向优盈杯一位创始人发邮件,请求提供大量优盈杯照片数据集。由于优盈杯部分创始人对 Clarifai 有投资,Humor Rainbow 为其提供了近 300 万张 优盈杯用户…...
从‘torch not found’到成功训练:一个YOLOv8环境配置的完整避坑实录(含CUDA/cuDNN版本选择)
YOLOv8环境配置终极指南:从版本匹配到显存优化的全流程实战 在计算机视觉领域,YOLOv8作为目标检测的标杆算法,其安装配置过程却常常成为开发者的"拦路虎"。本文将带你系统解决从PyTorch版本选择、CUDA环境配置到显存优化的全链路问…...
如何实现格式保留翻译?Hunyuan MT1.5结构化文本处理实战解析
如何实现格式保留翻译?Hunyuan MT1.5结构化文本处理实战解析 1. 引言:当翻译遇到格式难题 你有没有遇到过这样的尴尬场景?好不容易找到一款翻译工具,把英文网页翻译成了中文,结果发现所有链接都失效了,排…...
Apache Flink Agents 0.2.1 发布公告
Apache Flink 社区很高兴地宣布发布 Apache Flink Agents 0.2 系列的首个缺陷修复版本。 此版本包含 3 项缺陷和漏洞修复以及一些对Flink-Agents 0.2的小幅改进。下面列出了所有缺陷修复和改进内容(不包括构建基础设施和构建稳定性方面的改进)。如需查看…...
