Halcon Solution Guide I basics(3): Region Of Interest(有兴趣区域/找重点)
文章目录
- 文章专栏
- 前言
- 文章解读
- 前言
- 创建ROI
- 案例1:直接截取ROI
- 手动截取ROI
- 总结
- ROI套路
- 获取窗口句柄
- 截取ROI区域
- 获取有效区域
- Stop组合
文章专栏
Halcon开发
Halcon学习 练习项目gitee仓库
CSDN Major 博主Halcon文章推荐
前言
今天来看第三章内容,既然是零基础,而且我还有大概3-4个月的时间准备,我还是老老实实从头开始学机器视觉好了。
文章解读
下面我将 Region Of Interest 命名为[找重点]
前言
- [找重点]可以减少无效信息和
- [找重点]经常用于找用于模板匹配的区域

创建ROI
- Halcon提供了一个[reduce_domain]的方法去获取图片域的ROI信息。

案例1:直接截取ROI

*读取图片文件
read_image (Image, 'mreut')
*得到一个坐标为(256,256),半径为200的圆
gen_circle (ROI, 256, 256, 200)
*截取这个圆内的图像信息
reduce_domain (Image, ROI, ImageReduced)
*找到亚像素精度的图片信息
edges_sub_pix (ImageReduced, Edges, 'lanser2', 0.5, 20, 40)
*显示Image/ROI/Edges
dev_display (Image)
dev_display (ROI)
dev_display (Edges)
效果

手动截取ROI


* critical_points.hdev: locate saddle point markers in an image
*
dev_update_window ('off')
* ****
* 获取图片信息
* ****
*加载图片
read_image (Image, 'landmarks')
*获取图片大小
get_image_size (Image, Width, Height)
*设置线段等基本参数
dev_close_window ()
*打开图片长宽的窗口,拿到WindowHandle的句柄
*dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*我更推荐使用自适应图片大小的窗体这个算子
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_set_part (0, 0, Height - 1, Width - 1)
dev_set_line_width (3)
dev_set_color ('blue')
dev_set_draw ('margin')
dev_display (Image)
set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
* ****
* 截取ROI
* ****
disp_message (WindowHandle, '使用鼠标左键截取图片区域,右键退出', 'window', 12, 12, 'blue', 'false')
dev_set_color ('white')
*--获取绘画的Region区域
draw_region (Region, WindowHandle)
dev_display (Region)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* ****
* step: create ROI
* ****
* 使用reduce_domain算子,设置图片的ROI
reduce_domain (Image, Region, ImageReduced)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* ****
* step: process image within ROI
* ****
critical_points_sub_pix (ImageReduced, 'facet', 1.5, 8, RowMin, ColumnMin, RowMax, ColumnMax, RowSaddle, ColSaddle)*清空整个窗口
dev_clear_window ()
*只显示ROI部分内容
dev_display (ImageReduced)
dev_set_color ('yellow')
for i := 0 to |RowSaddle| - 1 by 1gen_cross_contour_xld (Cross, RowSaddle[i], ColSaddle[i], 25, 0.785398)dev_display (Cross)
endfor
stop ()
dev_update_window ('on')
运行结果

总结
ROI就是个截取部分区域的功能。有主动设置区域和被动设置区域两种方法。
ROI套路
获取窗口句柄
*打开图片长宽的窗口,拿到WindowHandle的句柄
*dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*我更推荐使用自适应图片大小的窗体这个算子
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
截取ROI区域
* 参数设置ROI区域
gen_circle (ROI, 256, 256, 200)
* 使用WindowHandle窗口句柄,鼠标截取ROI区域
draw_region (ROI, WindowHandle)
获取有效区域
* 使用reduce_domain句柄,获取ROI区域信息
reduce_domain (Image, ROI, ImageReduced)* 可以使用其它算子去解析ROI的ImageReduce区域。
critical_points_sub_pix (ImageReduced, 'facet', 1.5, 8, RowMin, ColumnMin, RowMax, ColumnMax, RowSaddle, ColSaddle)*--如果想凸显ROI区域,可以进行如下操作
*清空整个窗口
dev_clear_window ()
*只显示ROI部分内容
dev_display (ImageReduced)

Stop组合
* 使用disp_continue_message和stop组合显示F5继续程序的提示
disp_continue_message (WindowHandle, 'black', 'true')
stop ()

相关文章:
Halcon Solution Guide I basics(3): Region Of Interest(有兴趣区域/找重点)
文章目录 文章专栏前言文章解读前言创建ROI案例1:直接截取ROI手动截取ROI 总结ROI套路获取窗口句柄截取ROI区域获取有效区域 Stop组合 文章专栏 Halcon开发 Halcon学习 练习项目gitee仓库 CSDN Major 博主Halcon文章推荐 前言 今天来看第三章内容,既然是…...
以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?
在今年 3 月,Ordinals 凭空问世,定义了一套在比特币网络运行的序数协议,使得 Token 和 NFT 能在比特币网络上实现并稳定运行,拉来了比特币铭文市场的新序幕。而在此后,在包括 BRC20 等在内的一系列应用的出现ÿ…...
Socket通信之网络协议基本原理
一台机器将自己想要表达的内容,按照某种约定好的格式发送出去,当另外一台机器收到这些信息后,也能够按照约定好的格式解析出来,从而准确、可靠地获得发送方想要表达的内容。这种约定好的格式就是网络协议(Networking P…...
linux 开发板以太网通过Ubuntu上外网方法
在开发板嵌入式设备,有一个mgbe网卡,用网线与连接soc的网卡,和外接网卡,将网卡usb接口插入电脑,选择接入到Ubuntu系统 在Ubuntu将能识别到这个外接网卡,这样就可以通过Ubuntu和soc通讯了, 如下…...
DependencyProperty.Register:wpf 向别的xaml传递参数
一.使用背景:在A.xaml中嵌入B.xaml,并且向B.xaml传递参数。 函数介绍: public static DependencyProperty Register(string name, Type propertyType, Type ownerType );name(string): 依赖属性的名称。在…...
uvm白皮书练习_ch2_ch231_加入transaction
2.3 为验证平平台加入各种组件 uvm白皮书练习_ch2_ch231_加入transaction 代码部分 top_tb.sv timescale 1ns / 1ps include "uvm_macros.svh"import uvm_pkg::*; /*只能现在*/include "my_if.sv" include "my_transaction.sv" include "…...
python-泛型实现,类型检查
python-泛型实现,类型检查 泛型类型泛型类 在Python中,没有像Java中的泛型那样的明确语法来指定类型参数。Python是一种动态类型语言,可以灵活地处理不同类型的对象。 然而,如果你希望在Python中添加泛型的注释或提示,…...
黑马React18: Redux
黑马React: Redux Date: November 19, 2023 Sum: Redux基础、Redux工具、调试、美团案例 Redux介绍 Redux 是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行 作用:通过集中管理的方式管…...
visionOS空间计算实战开发教程Day 5 纹理和材质
在Day 4中我们使用了ImmersiveSpace并在其中添加了一个立方体,但对这个立方体我们只配置了长宽高,并没有做进一步的操作。 本文中我们会通过纹理和材质对这个立方体的六个面分别进行不同的绘制。首先我们将ImmersiveView分拆…...
低代码PaaS开发平台
目录 一、低代码概念 低代码目的 低代码核心功能 二、PaaS平台 PaaS服务的低代码平台 1.私有化部署,为数据安全保驾护航 2.业内领先技术,为开发强势赋能 3.超强集成能力,系统对接无忧 4.源代码交付,实现二开自由 三、小结 一、低代…...
阿里云99元服务器ECS经济型e实例性能如何?测评来了
阿里云服务器优惠99元一年,配置为云服务器ECS经济型e实例,2核2G配置、3M固定带宽和40G ESSD Entry系统盘,CPU采用Intel Xeon Platinum架构处理器,2.5 GHz主频,3M带宽下载速度384KB/秒,上传速度1028KB/秒&am…...
vue3-生命周期
🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3-生命周期 目录 vue3生命周期 vue3生命周期钩子 1.1 onMounted() 1.2 onUpdated() 1.3 onU…...
23. 深度学习 - 多维向量自动求导
Hi, 你好。我是茶桁。 前面几节课中,我们从最初的理解神经网络,到讲解函数,多层神经网络,拓朴排序以及自动求导。 可以说,最难的部分已经过去了,这节课到了我们来收尾的阶段,没错,生…...
挺扎心!好不容易有了一个offer,就因为背调出之前有仲裁记录,offer黄了,这已经是第二次了!...
仲裁记录会影响之后求职吗? 最近有一位程序员向我们讲述了他的遭遇: 大环境不好,好不容易有了一个offer,却因为背调出跟之前公司有仲裁经历,offer黄了,这已经是第二次因为这个原因黄offer了。 他说自己快抑…...
【brpc学习实践四】异步请求案例详解
注意 使用的还是源码的案例,添加个人注解。在前面的篇章我们讲解了客户端、服务端rpc构造的基本流程及同步、异步的案例基础之后,再理解此案例就容易了。 想直接看案例实现请看: server端实现 client端实现 服务端要点概览 controller ser…...
git命令 cherry-pick
参考:https://blog.csdn.net/weixin_42585386/article/details/128256149 https://blog.csdn.net/weixin_44799217/article/details/128279250 merge和cherry-pick的区别: merge:是把某一个代码分支完全合并到当前的代码分支。完全合并的意…...
手动添加扩展到composer中
如果拓展包第三方没有提供composer安装方式,可以将扩展包手动添加到vendor目录下 将拓展包复制到vendor文件夹下 拓展包需要配置好composer.json文件中的autoload和包里面的命名空间 配置vendor/composer/autoload_psr4.php文件 xx\\xx\\ > array($vendorDir…...
TCP/IP
分层模型 TCP 传输控制协议 UDP 用户数据包协议 四层 应用层 负责发送/接收消息 传输层 负责拆分和组装 .期间会有编号 网络层 TCP/UDP 属于网络层, 不会判断和处理编号 数据链路层 以太网 ,网络设备 TCP 连接 TCP连接需要端口,进行通信 Java 通过Socket 接收消息 发送 …...
NX二次开发UF_CAM_set_clear_plane_data 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_clear_plane_data Defined in: uf_cam_planes.h int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 De…...
如何在 ASP.NET Core 中使用 Quartz.NET
当我们在web开发中,常常会遇到这么一个需求,在后台执行某一项具体的任务,具体的说就是这些任务必须在后台定时执行。 Quartz.NET 是一个开源的 JAVA 移植版,它有着悠久的历史并且提供了强大的 Cron 表达式,这篇我们就…...
python pyupgrade
# 从代码整洁到版本适配:聊聊pyupgrade那些事 Python这门语言有个有趣的特点,它的更新换代总是带着一种“永远在变”的气质。从2到3的剧变,再到3.x里那些新增的语法糖,每一次升级都像给开发者送了个小礼物。不过礼物虽好ÿ…...
DreamID-Omni多模态生成框架解析与应用实践
1. 项目概述DreamID-Omni是一个突破性的多模态生成框架,它首次实现了对人像音视频内容的统一控制。这个框架最吸引我的地方在于,它能够通过单一模型同时处理图像、音频和视频的生成任务,这在业内尚属首创。作为一名长期关注生成式AI的从业者&…...
2026届必备的六大AI写作工具横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 运用DeepSeek来辅助进行论文写作,得遵循系统性的流程。首先呢,要明确…...
避开这3个坑,你的SAM模型训练效果才能翻倍
避开这3个坑,你的SAM模型训练效果才能翻倍 训练一个高性能的Segment Anything Model(SAM)就像在迷宫中寻找出口——即使你掌握了基本路线,也难免会踩中几个隐藏的陷阱。作为计算机视觉领域最令人兴奋的突破之一,SAM以其…...
中兴光猫Telnet开启工具|支持2024年8月前原厂固件|一键修改SN/MAC/密码/配置导出
温馨提示:文末有联系方式工具核心功能概览 本款中兴光猫专用网络维护工具,专为技术型用户设计,全面支持2024年8月以前出厂的中兴原厂固件设备,无需刷机、不依赖第三方固件,安全稳定启用底层调试接口。Telnet远程调试一…...
taotoken模型广场如何辅助ubuntu开发者进行模型选型与测试
Taotoken 模型广场如何辅助 Ubuntu 开发者进行模型选型与测试 1. 模型选型的技术挑战 Ubuntu 开发者在启动新 AI 项目时,通常需要评估多个大语言模型的性能、价格和适用场景。传统方式需要分别查阅不同厂商的文档,注册多个账号,并编写适配各…...
保姆级教程:用BTC工具链搞定AUTOSAR模型(BCV模块)的MIL测试与报告生成
保姆级教程:用BTC工具链实现AUTOSAR模型(BCV模块)的MIL测试全流程实战 在汽车电子软件开发领域,AUTOSAR架构已成为行业标准,而基于模型的开发(MBD)方法则大幅提升了开发效率。但对于许多刚接触B…...
AI协同认知:逻辑与梦境融合的创意生成技术
1. 项目概述:当AI学会"做梦"意味着什么去年我在调试一个创意生成AI时,偶然发现一个有趣现象:当模型在低温度参数下运行后,再突然切换到高随机性状态时,会产生类似"梦境联想"的创意组合。这个意外发…...
加权h变换采样:视觉生成领域的高效新方法
1. 项目概述:视觉生成领域的创新采样方法 在计算机视觉和生成模型领域,如何高效地从复杂分布中采样一直是核心挑战。传统方法往往面临收敛速度慢或生成质量不稳定的问题。这个项目提出了一种名为"加权h变换采样"的创新方法,通过粗粒…...
2025届毕业生推荐的AI学术工具横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 基于运用自然语言处理以及机器学习技术所打造而成的智能软件,便是AI论文工具&…...
