当前位置: 首页 > article >正文

C#联合HALCON:实现模板匹配、测量、找线找圆等功能,可连接相机测试

c#联合halcon 实现了模板匹配测量 找线找圆等功能可连接相机测试最近在项目中用C#联合Halcon做了一些图像处理的工作实现了一些基础功能比如模板匹配、测量、找线、找圆等还顺便测试了相机的连接。今天就来分享一下这些功能的实现过程和一些代码分析。c#联合halcon 实现了模板匹配测量 找线找圆等功能可连接相机测试首先Halcon作为一个强大的机器视觉库提供了丰富的图像处理功能。C#作为开发语言虽然不如C那样直接与Halcon无缝对接但通过Halcon提供的.NET库我们依然可以很方便地调用Halcon的功能。连接相机在开始之前我们需要先连接相机。Halcon提供了HOperatorSet.OpenFramegrabber函数来打开相机并获取图像。下面是一个简单的相机连接代码HTuple cameraHandle; HOperatorSet.OpenFramegrabber(DirectShow, 1, 1, 0, 0, 0, 0, default, 8, rgb, -1, false, default, [0] , 0, -1, out cameraHandle); HOperatorSet.GrabImage(out HObject image, cameraHandle);这里我们使用了DirectShow作为相机接口[0]表示第一个相机设备。GrabImage函数用于抓取一帧图像。如果你有多个相机可以调整[0]来选择不同的设备。模板匹配模板匹配是机器视觉中非常常用的功能Halcon提供了FindShapeModel函数来实现这一功能。我们首先需要创建一个模板然后在图像中查找这个模板。HObject templateImage; HOperatorSet.ReadImage(out templateImage, template.png); HShapeModel shapeModel; HOperatorSet.CreateShapeModel(templateImage, auto, -0.39, 0.79, auto, auto, use_polarity, auto, auto, out shapeModel); HObject searchImage; HOperatorSet.ReadImage(out searchImage, search.png); HTuple row, column, angle, score; HOperatorSet.FindShapeModel(searchImage, shapeModel, -0.39, 0.79, 0.5, 1, 0.5, least_squares, 0, 0.9, out row, out column, out angle, out score);CreateShapeModel用于创建模板模型FindShapeModel则在目标图像中查找这个模板。row和column是模板在图像中的位置angle是旋转角度score是匹配得分。测量测量功能通常用于检测物体的尺寸或位置。Halcon提供了MeasurePairs函数来实现这一功能。我们可以通过定义测量区域来获取物体的边缘信息。HObject measureRegion; HOperatorSet.GenRectangle1(out measureRegion, 100, 100, 200, 300); HTuple rowEdgeFirst, columnEdgeFirst, amplitudeFirst, rowEdgeSecond, columnEdgeSecond, amplitudeSecond; HOperatorSet.MeasurePairs(image, measureRegion, 1.0, 40, all, all, out rowEdgeFirst, out columnEdgeFirst, out amplitudeFirst, out rowEdgeSecond, out columnEdgeSecond, out amplitudeSecond);GenRectangle1定义了一个矩形区域MeasurePairs则在这个区域内进行边缘检测返回两对边缘点的位置和强度。找线和找圆找线和找圆是图像处理中的常见需求。Halcon提供了HoughLines和FindCircle函数来实现这些功能。HTuple lineRow1, lineCol1, lineRow2, lineCol2; HOperatorSet.HoughLines(image, hough_lines, 1, 10, 20, 10, 10, out lineRow1, out lineCol1, out lineRow2, out lineCol2); HTuple circleRow, circleColumn, circleRadius; HOperatorSet.FindCircle(image, hough_circle, 10, 20, 10, 10, 5, 20, out circleRow, out circleColumn, out circleRadius);HoughLines用于检测直线返回直线的起点和终点坐标。FindCircle则用于检测圆返回圆心坐标和半径。总结通过C#联合Halcon我们可以很方便地实现各种图像处理功能。虽然C#不是Halcon的“原生”语言但通过.NET库我们依然可以发挥Halcon的强大功能。代码写起来也不复杂关键是要理解Halcon的API和图像处理的基本原理。如果你也在做类似的项目希望这些代码和分析能给你一些启发。当然Halcon的功能远不止这些大家可以根据自己的需求去探索更多的功能。

相关文章:

C#联合HALCON:实现模板匹配、测量、找线找圆等功能,可连接相机测试

c#联合halcon 实现了模板匹配,测量 找线找圆等功能,可连接相机测试最近在项目中用C#联合Halcon做了一些图像处理的工作,实现了一些基础功能,比如模板匹配、测量、找线、找圆等,还顺便测试了相机的连接。今天就来分享一…...

2023年最新OWASP Top 10漏洞解析:这些安全陷阱你踩过吗?

2023年OWASP Top 10漏洞深度防御指南:从原理到实战 在数字化转型加速的今天,Web应用安全已成为企业防护体系中最薄弱的环节之一。根据Verizon《2023年数据泄露调查报告》,Web应用漏洞导致的入侵事件占比高达26%,平均修复周期长达2…...

MoE架构爆火!揭秘AI“专家团”如何实现大容量低成本,性能竟对标GPT-4?

MoE(混合专家模型)架构通过组建“专家团队”替代传统大模型的“全才”模式,大幅降低计算资源消耗。专家网络分工协作,门控网络智能调度,稀疏激活技术实现高效计算。尽管面临负载均衡、通信开销和内存墙等工程挑战&…...

Windows触控板驱动终极指南:让Apple触控板在PC上完美运行

Windows触控板驱动终极指南:让Apple触控板在PC上完美运行 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad…...

如何高效优化硬件性能:开源工具OmenSuperHub的完整指南

如何高效优化硬件性能:开源工具OmenSuperHub的完整指南 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普OMEN游戏本设计的开源硬件控制工具,通过深度优化风扇控制、功率管理…...

Windows APK安装突破限制:APK-Installer无缝体验实现指南

Windows APK安装突破限制:APK-Installer无缝体验实现指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows系统上安装安卓应用总是困难重重&#x…...

大模型时代:掌握未来,从学习AI开始!揭秘大模型背后的技术秘密与商业价值

本文深入探讨了人工智能领域的大型预训练模型(大模型),解释了其定义、重要性及广泛应用场景。文章首先介绍了大模型的基本概念,随后阐述了学习大模型对于个人和职业发展的关键意义。接着,详细列举了大模型在自然语言处…...

毫米波雷达IF信号相位详解:为什么移动1毫米,相位能变180度?

毫米波雷达IF信号相位详解:为什么移动1毫米,相位能变180度? 毫米波雷达作为现代自动驾驶、工业检测和医疗监测的核心传感器,其核心能力之一是对微小位移的精确测量。在77GHz频段下,一个看似反直觉却至关重要的现象是&a…...

论文写作“黑科技”:书匠策AI,让课程论文创作如行云流水

在学术的征途上,课程论文是每位学子必须跨越的一道门槛。从选题时的迷茫,到文献搜集的繁琐,再到撰写过程中的卡顿,每一步都似乎充满了挑战。但别怕,今天我要揭秘一个论文写作的“黑科技”——书匠策AI科研工具&#xf…...

网页设计师必备:ColorPicker颜色拾取器从安装到实战应用全攻略

网页设计师的色彩魔法:ColorPicker高效应用与创意实践 在数字设计的世界里,色彩从来不只是简单的视觉元素——它是情绪的传递者、品牌的代言人,更是用户体验的无声引导者。对于每天与像素打交道的网页设计师而言,快速准确地获取和…...

从安装到实战:OpenClaw+Qwen3-32B完成自动化测试全流程

从安装到实战:OpenClawQwen3-32B完成自动化测试全流程 1. 为什么选择OpenClaw做自动化测试? 去年接手一个新项目时,我遇到了一个典型的测试困境:每次代码提交后需要手动执行5个测试套件,收集日志并发送邮件给团队。这…...

探秘书匠策AI:课程论文写作的“未来引擎”

在学术的浩瀚宇宙中,每一篇课程论文都是一颗独特的星辰,它们汇聚成璀璨的银河,照亮着知识的探索之路。然而,对于许多学子而言,撰写课程论文却是一场充满挑战的冒险,从选题迷茫到结构搭建,从内容…...

AI Agent将颠覆你的工作与生活?揭秘全产业链布局机会!

01 产业链全景图02 【AI Agent】解读 AI Agent 就是能自主帮你办事的智能 AI,不再是只会一问一答的机器人。普通 AI 需要你一步步指令,它只负责回答;而 AI Agent 你只要说清目标,它就能自己分析需求、拆解步骤、调用工具&#x…...

MyBatis Plus多租户实战:如何用TenantLineHandler实现数据隔离(附完整代码)

MyBatis Plus多租户架构深度实践:从TenantLineHandler到生产级解决方案 在当今SaaS服务盛行的时代,多租户架构已成为企业级应用的标配需求。作为Java生态中最受欢迎的ORM框架之一,MyBatis Plus通过TenantLineHandler提供了一套优雅的多租户解…...

密码学开发实战:如何在Windows上快速搭建PBC+GMP开发环境(含VS2019适配方案)

密码学开发实战:Windows下PBC与GMP开发环境高效配置指南 1. 环境搭建前的准备工作 在开始配置PBC和GMP开发环境之前,我们需要先了解这两个库的基本情况。PBC(Pairing-Based Cryptography)库是一个专门用于双线性对密码学运算的开源…...

AI编程助手:利用Z-Image-Turbo_Sugar脸部Lora生成代码注释与文档所需的头像素材

AI编程助手:利用Z-Image-Turbo_Sugar脸部Lora生成代码注释与文档所需的头像素材 1. 引言:当代码文档遇上个性化头像 你有没有发现,很多开源项目的README文档或者技术博客里,作者头像要么是默认的灰色剪影,要么就是五…...

CTF新手必看:从ROT13到Base85的套娃编码实战解析(附完整脚本)

CTF新手必看:从ROT13到Base85的套娃编码实战解析(附完整脚本) 当你第一次接触CTF竞赛中的编码题目时,看到那些层层嵌套的加密字符串,是不是感觉像在拆俄罗斯套娃?本文将带你从零开始,手把手破解…...

Qwen3-0.6B-FP8保姆级教程:模型加载失败时的7类错误码速查与修复指南

Qwen3-0.6B-FP8保姆级教程:模型加载失败时的7类错误码速查与修复指南 1. 引言:为什么你的模型加载总失败? 如果你正在尝试部署Qwen3-0.6B-FP8这个轻量化对话工具,大概率会遇到一个让人头疼的问题:模型加载失败。控制…...

AWS CDK Examples 企业级应用:大规模云基础设施的架构设计

AWS CDK Examples 企业级应用:大规模云基础设施的架构设计 【免费下载链接】aws-cdk-examples Example projects using the AWS CDK 项目地址: https://gitcode.com/gh_mirrors/aw/aws-cdk-examples AWS CDK Examples 是一个强大的开源项目,提供了…...

影刀收购Automa:RPA生态融合的机遇与挑战

1. 影刀收购Automa的背景与意义 最近RPA圈子里最热的话题莫过于影刀收购Automa这件事了。作为一个在自动化领域摸爬滚打多年的老手,我第一反应是:这绝对是个值得深入探讨的行业事件。影刀作为国内RPA领域的头部玩家,收购了国外知名的开源浏览…...

Ubuntu上nvidia-smi报错Driver/library version mismatch?不用重启的3个排查与修复步骤

Ubuntu上nvidia-smi报错Driver/library version mismatch的深度修复指南 当你正准备开始一天的深度学习训练或图形渲染工作时,突然发现nvidia-smi命令报出"Driver/library version mismatch"错误,这无疑是令人沮丧的。本文将带你深入理解这个问…...

手把手教你用yum在openEuler上安全升级OpenSSH 10.0p1(附完整命令集)

手把手教你用yum在openEuler上安全升级OpenSSH 10.0p1(附完整命令集) 最近在维护openEuler服务器时,发现系统自带的OpenSSH版本存在一些已知的安全漏洞。作为系统管理员,我深知SSH服务的安全性直接关系到整个服务器的访问安全。经…...

华为路由器帧中继配置实战:Hub-and-Spoke模式下RIP与OSPF的坑我都踩过了

华为路由器帧中继配置实战:Hub-and-Spoke模式下RIP与OSPF的坑我都踩过了 在企业级网络部署中,帧中继技术虽然逐渐被MPLS等新技术取代,但在某些特定场景下仍然是不可或缺的解决方案。特别是在Hub-and-Spoke拓扑结构中,帧中继的配置…...

WuliArt Qwen-Image Turbo显存优化部署:VAE分块编码+CPU卸载实测报告

WuliArt Qwen-Image Turbo显存优化部署:VAE分块编码CPU卸载实测报告 1. 引言:当高清文生图遇上个人显卡 如果你尝试过在个人电脑上运行最新的文生图模型,大概率会遇到一个头疼的问题:显存爆炸。动辄需要40G、80G显存的模型&…...

TeslaMate容器日志导出:保存与分析历史记录的实用命令

TeslaMate容器日志导出:保存与分析历史记录的实用命令 【免费下载链接】teslamate 项目地址: https://gitcode.com/gh_mirrors/tes/teslamate TeslaMate是一款功能强大的自托管Tesla车辆数据记录器,通过Docker容器部署,能够持续监控和…...

Qt 6.4 + Limereport 1.7.9 实战:5分钟搞定动态报表生成(附Python绑定教程)

Qt 6.4 Limereport 1.7.9 实战:Python绑定下的动态报表生成指南 在数据处理和业务系统开发中,报表生成是一个永恒的需求。传统方案往往需要依赖复杂的商业软件或繁琐的手动操作,而Qt与Limereport的组合为开发者提供了一条高效路径。本文将聚…...

Pixel Mind Decoder 安全与隐私考量:处理用户文本数据的合规性指南

Pixel Mind Decoder 安全与隐私考量:处理用户文本数据的合规性指南 1. 为什么数据安全与隐私如此重要 想象一下,你正在开发一款情绪分析应用,能够通过分析用户输入的文本内容来判断他们的情绪状态。这个功能听起来很酷,但背后隐…...

Clappr流媒体支持:HLS、DASH等格式完全指南

Clappr流媒体支持:HLS、DASH等格式完全指南 【免费下载链接】clappr :clapper: An extensible media player for the web. 项目地址: https://gitcode.com/gh_mirrors/cl/clappr Clappr是一款功能强大的Web媒体播放器,以其高度可扩展性和对多种流…...

FUTURE POLICE模型API网络安全防护配置指南

FUTURE POLICE模型API网络安全防护配置指南 最近在帮一个朋友部署他们团队的FUTURE POLICE模型服务,准备对外提供API。部署本身挺顺利,但聊到安全防护时,我发现他们想得有点简单了——直接把服务端口暴露在公网上,觉得有个密码登…...

#AI原生安全,全球首个软件供应链安全开源社区OpenSCA

在“软件定义万物”的时代,软件供应链开源化使得各个环节不可避免地受到开源应用的影响,尤其是开源应用的安全性,将直接影响软件供应链的安全性。除开源应用开发者在开发过程中无意识地引入的安全缺陷之外,还可能会存在开发者有目…...