halcon_C#联合halcon打开摄像头

news2024/11/16 10:15:48

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,用于存储图像对象,初始值为null
        HObject ho_Image = null;

        // 声明局部控制变量hv_AcqHandle,用于图像采集句柄,初始值为null
        HTuple 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_Image
            HOperatorSet.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. 启动项目 ->

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL存储引擎和

MySQL存储引擎 在数据库中保存的是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,最关注的一个问题是使用什么存储引擎。MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种…

redis面试(四)ZSet数据结构

Sorted Set 有序集合ZSet,但是有序集合的英文明明是sorted sets。 那这个“Z”代表什么意思,这点官网没有解释,但是gitHub上有人问过,作者是这样回答的 Hello. Z is as in XYZ, so the idea is, sets with another dimension: t…

Selenium与WebDriver:Errno 8 Exec格式错误的多种解决方案

概述 在使用Selenium和WebDriver进行网页自动化时,可能会遇到各种错误。其中一个常见问题是执行格式错误(Errno 8 Exec format error)。这个错误通常在运行ChromeDriver时出现,错误提示涉及路径中的某个文件,如THIRD_…

WordPress建站教程:零基础新手小白如何B2B外贸建站

如果你想通过独立站拿询盘获取订单,那么必须先要有一个自己的网站,所以建站是你绕不过去的一件事。对于零基础的新手小白来说,如何从零开始搭建一个B2B外贸网站呢?本文将为你提供一份详细的WordPress建站教程,帮助你从…

NodeJS云观影应用系统-计算机毕业设计源码60580

摘 要 随着互联网与移动互联网迅速普及,网络上的电影娱乐信息数量相当庞大,人们对获取感兴趣的电影娱乐信息的需求越来越大,个性化的基于Vue框架实现云观影应用系统成为一个热门。然而电影信息的表示相当复杂,因此需要开发一个基于Vue框架实…

Navicat for MySQL 17 实现更明智的业务决策

5 月 12 日,Navicat 对现有产品进行了几项重大更新,包括 Navicat Premium、Navicat BI 和 Navicat Data Modeler。最受欢迎的 Navicat 工具之一,Navicat for MySQL,也得到了新的更新,获得了许多与 Navicat Premium 相同…

PostgreSQL——查询扫描介绍

顺序扫描 概述 顺序扫描(Sequential Scan)是PostgreSQL中一种基本的数据检索方式,它通过按顺序读取表中的所有页面来查找满足查询条件的记录。这种方式不依赖于索引,因此在某些情况下可能是唯一的选择,尤其是当表没有…

熵权法确定权重

熵权法(Entropy Weight Method, EWM)是一种在综合考虑各因素提供信息量基础上计算综合指标的数学方法,属于客观综合定权法,在确定权重时更有说服力。该方法主要根据各指标传递给决策者的信息量大小来确定权重。在信息论中&#xf…

AIGC diffusers文生图模型optimum量化使用案例

参考: https://github.com/huggingface/blog/blob/main/quanto-diffusers.md 安装 pip install optimum-quanto %pip install optimum使用 from optimum.quanto import freeze, qfloat8, quantize from diffusers import PixArtSigmaPipeline import torchpipeline = PixArt…

离线安装部署docker,内网离线安装部署docker,以及docker常用命令

1.下载docker的离线安装包 链接: https://pan.baidu.com/s/1beDBIYw-8IjJj5syGnHiZA 提取码: 8888 复制这段内容后打开百度网盘手机App,操作更方便哦 2.将二进制文件:docker-20.10.19.tgz 拖入服务器目录/home/admin/解压 tar -zxvf docker-20.10.19.…

喜讯 华焰天下荣获绿色低碳诚信企业、碳中和承诺示范单位、信用评价 AAA 级信用企业等系列证书

在推动可持续发展和构建诚信商业环境的道路上,华焰天下再次传来令人振奋的消息!近日,华焰天下凭借其在绿色低碳领域的卓越表现、坚定不移的碳中和承诺以及高度可靠的信用体系,成功荣获绿色低碳诚信企业、碳中和承诺示范单位、信用…

无人机技术已应用至地理测绘,Infortrend存储助力测绘数据

--高扩展保存海量无人机数据,高性能支持快速调取建模,数据安全也有免费的备份功能,实实在在好用的存储设备。

智能合约中approve函数详解

场景 这段时间很多小伙伴加我、都咨询到了一个类似的业务场景、 如下: 1、第一步业务里面调用授权函数approve 、给指定address2、第二步是由授权的address调用transferFrom转移给指定的接受地址。 案例DEMO如下(这里test2肯定是会执行失败的&#xff…

C语言典型例题19

《C程序设计教程(第四版)——谭浩强》 例题2.7 检查浮点型数据的舍去误差 C语言知识: 浮点数在C语言用有两个类型,有float和double类型,其中double类型的数据精度更高 解题思路: 可以将一个double类型的…

城市运管服平台:智慧城市的神经中枢

“城市运行管理服务平台”(简称“城市运管服平台”)作为现代城市治理的智慧核心,正以前所未有的方式重塑着城市管理与服务的面貌。本文旨在深度解析城市运管服平台的内涵、运作机制及其对推动智慧城市发展的重要意义。 城市运管服平台&#…

视频超压缩保持质量 ffmpeg

参考: https://x.com/mortenjust/status/1817991110544744764 基于 FFMpeg 的 H264 压缩标准,实现压缩 90% 的视频大小 在线体验地址: https://tools.rotato.app/compress ffmpeg命令执行 ffmpeg -i "C:\Users\loong\Downloads\屏幕录…

Vidu视频生成工具全球上线,注册即刻体验

生数科技,这家成立于2023年3月的年轻企业,其核心团队成员来自清华大学人工智能研究院。首席科学家朱军教授,曾在贝叶斯机器学习和多模态大模型领域取得多项原创性成果。Vidu的核心技术U-ViT架构,是全球首个将Diffusion与Transform…

# mongodb_基础到进阶 -- MongoDB 快速上手(四)

mongodb_基础到进阶 – MongoDB 快速上手(四) 一、MongoDB :文章评论 需求&表结构&技术选型 1、文章评论:需求分析 1)参考某头条的文章评论业务,文章示例参考:早晨空腹喝水&#xff…

功能强大的图片/pdf识别成文字的工具Umi-OCR

一、工具概述 操作系统:支持windows、Linux使用方法:图形化、命令行、http接口 二、功能特性 三、部署方式 1、windows 下载地址:Umi-OCR_文字识别工具 2、linux 推荐使用docker部署 》下载 Dockerfile mkdir Umi-OCR-Docker cd Umi-OC…

Overlay网络

Overlay 介绍 Overlay网络是将已有的物理网络(Underlay网络)作为基础,在其上建立叠加的逻辑网络,实现网络资源的虚拟化。 传统网络带来了以下一些问题: ● 虚拟机规模受 网络规格限制在传统二层网络环境下&#xff0…