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

halcon_C#联合halcon打开摄像头

1. 创建halcon项目 ->
在这里插入图片描述
在这里插入图片描述
2.测试连接 ->
在这里插入图片描述
3. 在halcon中打开摄像头成功 ->
在这里插入图片描述
4. 插入代码 ->
在这里插入图片描述
5. 导出为.cs文件
在这里插入图片描述
6. 创建VS项目 ->

在这里插入图片描述
7.将action部分代码嵌入winform ->
在这里插入图片描述

8. 编写代码 ->

// 导入HalconDotNet命名空间,这是用于Halcon图像处理的.NET封装库
using HalconDotNet;
// 导入System命名空间,这是.NET基础类库
using System;
// 导入System.Collections.Generic命名空间,用于使用泛型集合
using System.Collections.Generic;
// 导入System.ComponentModel命名空间,用于实现组件和自定义控件的运行时和设计时行为
using System.Data;
// 导入System.Drawing命名空间,用于基本的图形功能
using System.Drawing;
// 导入System.Linq命名空间,用于提供查询功能
using System.Text;
// 导入System.Threading.Tasks命名空间,用于支持异步编程
using System.Windows.Forms;
// 导入System.Threading命名空间,用于多线程操作
using System.Threading;
// 导入System.Net.Mime.MediaTypeNames静态类,用于获取多媒体类型名称
using static System.Net.Mime.MediaTypeNames;// 定义一个命名空间begin
namespace begin
{// 定义一个名为Form1的公共部分类,它继承自Form类public partial class Form1 : Form{// 声明局部图标变量ho_Image,用于存储图像对象,初始值为nullHObject ho_Image = null;// 声明局部控制变量hv_AcqHandle,用于图像采集句柄,初始值为nullHTuple hv_AcqHandle = null;// 声明一个Thread类型的变量show,用于控制显示图像的线程Thread show;// Form1的构造函数public Form1(){// 调用InitializeComponent方法,由设计器生成,用于初始化窗体组件InitializeComponent();}// button1的点击事件处理方法private void button1_Click(object sender, EventArgs e){// 创建一个新的线程show,执行action方法show = new Thread(action);// 启动线程show.Start();}// action方法,用于在单独的线程中执行图像采集和显示private void action(){// 初始化局部和输出图标变量ho_ImageHOperatorSet.GenEmptyObj(out ho_Image);// 打开图像采集设备,获取采集句柄HOperatorSet.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, "rgb",-1, "false", "default", "[0] HP Wide Vision HD Camera", 0, -1, out hv_AcqHandle);// 开始图像采集HOperatorSet.GrabImageStart(hv_AcqHandle, -1);// 无限循环,用于连续采集图像while ((int)(1) != 0){// 释放ho_Image占用的资源ho_Image.Dispose();// 异步采集图像HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);// 在hWindowControl1的HalconWindow中显示图像HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);// 这里可以添加对采集到的图像进行处理的其他代码}// 关闭图像采集设备HOperatorSet.CloseFramegrabber(hv_AcqHandle);// 释放ho_Image占用的资源ho_Image.Dispose();}// button2的点击事件处理方法private void button2_Click(object sender, EventArgs e){// 关闭图像采集设备HOperatorSet.CloseFramegrabber(hv_AcqHandle);// 终止show线程show.Abort();}}
}

9. 启动项目 ->

在这里插入图片描述


相关文章:

halcon_C#联合halcon打开摄像头

1. 创建halcon项目 -> 2.测试连接 -> 3. 在halcon中打开摄像头成功 -> 4. 插入代码 -> 5. 导出为.cs文件 6. 创建VS项目 -> 7.将action部分代码嵌入winform -> 8. 编写代码 -> // 导入HalconDotNet命名空间,这是用于Halcon图像处理的…...

无标题栏窗口通过消息模拟拖动窗口时,无法拖动的一个原因

在使用DUI库或者web控件来做窗口和UI时,常常遇到一个问题:整个窗口如果设置了CAPTION区域,那么在CAPTION区域中,web页面的内容无法正常响应鼠标事件,如果不设置CAPTION区域,那么对于窗口的拖动又有影响。在…...

每天一个数据分析题(四百五十四)- 调研问卷

选择题是设计市场调查问卷时常用的题目类型,关于多选题和单选题的优缺点,以下说法不正确的是? A. 多选题相比单选题提供的信息量大。 B. 单选题提供的信息量相对较少,但比较便于后期编码和统计分析。 C. 单选题和多选题可以同时…...

红酒与家居:打造优雅生活空间

在繁忙的都市生活中,我们渴望拥有一处宁静而优雅的家居空间,那里不仅是我们休憩的港湾,更是我们品味生活、享受时光的地方。当定制红酒与家居设计相遇,它们便共同绘制出一幅充满韵味与格调的生活画卷。今天,就让我们一…...

未来生成式 AI 的发展方向,是 Chat 还是 Agent?

什么是生成式AI? 生成式人工智能(Generative AI)是一种人工智能技术,它能够基于已有的数据模式和结构生成新的数据实例,这些实例可以是文本、图像、音频、视频或任何其他类型的数据。这种技术通常依赖于复杂的算法&am…...

powershell@日期和时间命令和对象

文章目录 abstract获取当前日期和时间格式化日期和时间日期计算👺创建自定义日期和时间👺**[datetime] 类型**及其构造函数缺省值计算日期差异获取特定部分的日期和时间比较日期和时间 常用日期操作总结表时间间隔 TimeSpan 👺创建TimeSpan对…...

【Golang 面试 - 基础题】每日 5 题(八)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…...

LeetCode 算法:在排序数组中查找元素的第一个和最后一个位置 c++

原题链接🔗:在排序数组中查找元素的第一个和最后一个位置 难度:中等⭐️⭐️ 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标…...

会话存储、本地存储,路由导航守卫、web会话跟踪、JWT生成token、axios请求拦截、响应拦截

1、会话存储、本地存储 前端浏览器中存储用户信息,会话存储、本地存储、cookie 会话存储(sessionStorage):会话期间存储,关闭浏览器后,数据就会销毁 sessionStorage.setItem("account",resp.d…...

strcmp库函数原型

int strcmp(const char *str1, const char *str2) {unsigned const char *s1 (unsigned const char *) str1;unsigned const char *s2 (unsigned const char *) str2;while (*s1 && *s1 *s2) {s1;s2;}return *s1 - *s2; }while (*s1 && *s1 *s2) 一直循环&…...

在 Vue.js 项目中延迟加载子组件

在 Vue.js 中,当父组件渲染时,子组件的生命周期钩子函数会立即执行,即使这些子组件并未显示。这是因为 Vue.js 会在渲染父组件时实例化所有引用的子组件。为了避免不必要的函数执行,我们可以通过使用 v-if 指令和异步组件延迟加载…...

何时会用到设计模式、七大设计原则介绍

以下关于b站尚硅谷相关设计模式视频的总结 设计模式的重要性: 代码重用性(相同的代码,不用编写很多次)、 可读性(编程规范,便于其他程序员阅读和理解)、 可扩展性(增加新功能时&am…...

编程语言发展历史:赋值与相等运算符的变迁历程

本文摘取自笔者书稿《编程语言发展历史》 赋值运算符是编程语言最基础的运算符,其发展历史也非常有趣。最早的赋值语句就是使用等号“”来表示,一些语言为了让赋值运算在数学形式上更加严谨(形如“x x 1”的表达式在数学上不成立&#xff0…...

求职Leetcode题目(2)

1.柱状图中最大的矩形 据说这是2024年字节二面的题目,我感觉这道题跟接雨水有点类似,最重要的思路还是要找到什么时候能形成矩形的这么个情况,某个范围的矩形的高度,是由最短的柱形来决定的。 我们先整理一下,解决这道…...

深入探索 Postman:使用 API 性能测试优化你的 Web 服务

引言 在当今快速发展的互联网时代,Web 服务的性能至关重要。API 作为服务之间的桥梁,其性能直接影响到整个应用的响应速度和用户体验。Postman,作为一个多功能的 API 开发工具,提供了强大的性能测试功能,帮助开发者评…...

校车购票小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,我的乘车信息管理,车辆信息管理,座位管理,系统管理 微信端账号功能包括:系统首页,车辆信息,我的 开发系统…...

拯救数据危机!2024年最受欢迎的数据恢复软件评测

现在大家快速传输资料的方式都变成了电子档,有些数据是存储在电脑上,有些存储在手机,有的存储在U盘甚至其他一些电子设备上。电子设备存储数据方便,丢失数据也总在意料之外。很多时候我们多学会一个工具,比如转转大师数…...

记一次因为在html两个地方引入vue.js导致组件注入失败的问题

这个问题我遇到两次了,是在恼火,不对,三次了,我如果不做这个笔记,我确定我还会遇到第三次。 尾部这个去掉就行 因为头部有了 遇到这种bu g好恼火,解决了又怎么样呢?重蹈覆辙的滋味不好受...

Postman中的智慧重试:API测试用例的错误处理与重试逻辑设置

Postman中的智慧重试:API测试用例的错误处理与重试逻辑设置 在API测试过程中,错误处理和重试逻辑是确保测试准确性和可靠性的重要环节。Postman提供了多种功能来处理测试中可能出现的错误,并允许自定义重试逻辑以适应不同的测试场景。本文将…...

docker部署本地词向量模型

开源项目:GitHub - huggingface/text-embeddings-inference: A blazing fast inference solution for text embeddings models 1. 下载词向量模型 参考我的另一篇博客:langchain 加载本地词向量模型 2. 部署词向量模型 就三行命令 model/data/BAAI/…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...