VisionPro二开之相机类设计

VisionPro二开之相机类设计

一 CameraService

usingCognex.VisionPro;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceVP之相机调试2{publicclassCameraService{//1. 私有静态变量(在第四步供外界使用),创建类的实例//2. 私有构造函数,确保外部无法直接实例化(确保是单个实例)//3. 确定供外界调用的代码资源//4. 公开静态属性,供外界使用(把第一步类的实例,开放出去)//5. 外界使用//1. 创建类的实例,同时变成私有的静态变量(在第四步供外界使用),privatestaticCameraServiceinstance=newCameraService();//2. 私有构造函数,确保外部无法直接实例化(确保是单个实例)privateCameraService(){}//4. 公开静态属性,供外界使用(把第一步类的实例,开放出去)publicstaticCameraServiceInstance{get{returninstance;}}//3. 确定供外界调用的代码资源VPCameraCamera1=newVPCamera();/// <summary>/// 打开相机/// </summary>/// <param name="SerialNum"></param>/// <returns></returns>publicboolOpenDevice(stringSerialNum){Camera1.grabGrayImage+=GrabImage;Camera1.SerialNumber=SerialNum;if(Camera1.OpenDevice()){returntrue;}else{returnfalse;}}/// <summary>/// 关闭设备/// </summary>publicvoidCloseDevice(){Camera1.CloseDevice();}/// <summary>/// 开始采集/// </summary>publicvoidStartGrab(){}/// <summary>/// 停止采集/// </summary>publicvoidStopGrab(){}/// <summary>/// 软触发一次/// </summary>publicvoidSnapImage(){Camera1.SnapImage();}/// <summary>/// 设置参数/// </summary>publicvoidSetCameraParamters(){}/// <summary>/// 获取参数/// </summary>publicvoidGetCametaParamters(){}/// <summary>/// 获取图像(图像回调)/// </summary>/// <param name="hImg"></param>publicvoidGrabImage(CogImage8Greyimg){varmainForm=Application.OpenForms.OfType<Form1>().FirstOrDefault();mainForm.cogRecordDisplay1.Image=img;mainForm.cogRecordDisplay1.Fit(true);}}}

二 VPCamera

一 打开相机

/// <summary>/// 打开相机/// </summary>/// <returns></returns>publicboolOpenDevice(){if(frameGrabbers.Count>0){try{foreach(ICogFrameGrabbercamerainframeGrabbers){if(camera.SerialNumber==SerialNumber){frameGrabber=camera;m_AcFifo=frameGrabber.CreateAcqFifo(frameGrabber.AvailableVideoFormats[0],CogAcqFifoPixelFormatConstants.Format8Grey,0,true);}}}catch(Exceptionex){MessageBox.Show($"初始化相机失败,信息为:{ex.Message}");returnfalse;}}returntrue;}
publicclassVPCamera{publicvoidCloseDevice(){//释放相机CogFrameGrabbersFrameGrabbers=newCogFrameGrabbers();foreach(ICogFrameGrabberfginFrameGrabbers){fg.Disconnect(false);}}}
usingCognex.VisionPro;usingCognex.VisionPro.Display;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Windows.Media.Media3D;namespaceVP之相机调试2{/// <summary>/// 传图委托(灰度图)/// </summary>/// <param name="GrayImg"></param>publicdelegatevoidGrabGrayImage(CogImage8GreyGrayImg);/// <summary>/// 传图委托(彩色图)/// </summary>/// <param name="RGBImg"></param>publicdelegatevoidGrabRGBImage(CogImage24PlanarColorRGBImg);publicclassVPCamera{/// <summary>/// 传灰度图事件/// </summary>publiceventGrabGrayImagegrabGrayImage;/// <summary>/// 传彩图事件/// </summary>publiceventGrabRGBImagegrabRGBImage;/// <summary>/// 相机枚举类,获取所有的相机/// </summary>privateCogFrameGrabbersframeGrabbers;// 相机对象privateICogFrameGrabberframeGrabber;/// <summary>/// 采集对象/// </summary>publicICogAcqFifom_AcFifo{get;set;}/// <summary>/// 相机序列号/// </summary>publicstringSerialNumber{get;set;}/// <summary>/// 构造器/// </summary>publicVPCamera(){frameGrabbers=newCogFrameGrabbers();}/// <summary>/// 打开相机/// </summary>/// <returns></returns>publicboolOpenDevice(){if(frameGrabbers.Count>0){try{foreach(ICogFrameGrabbercamerainframeGrabbers){if(camera.SerialNumber==SerialNumber){frameGrabber=camera;m_AcFifo=frameGrabber.CreateAcqFifo(frameGrabber.AvailableVideoFormats[0],CogAcqFifoPixelFormatConstants.Format8Grey,0,true);}}}catch(Exceptionex){MessageBox.Show($"初始化相机失败,信息为:{ex.Message}");returnfalse;}}returntrue;}publicvoidSnapImage(){try{// 获取采集状态// 如果值 > 0,表示有图像堆积,可能需调整采集速率或处理速度。// 当前 FIFO 中可立即读取的图像数量(已就绪的图像)。// 布尔值,表示 FIFO 是否正在处理采集请求 true 时需等待,避免重复触发m_AcFifo.GetFifoState(outvarnumPending,outvarnumReady,outvarbusy);if(numPending==0&&!busy){// 软触发:作用:向 FIFO 发送软触发信号,开始一次图像采集(相当于手动触发相机拍照)。m_AcFifo.StartAcquire();// 等待采集完成,并返回采集到的图像ICogImagecogImage=m_AcFifo.CompleteAcquireEx(newCogAcqInfo());grabGrayImage((CogImage8Grey)cogImage);// grabRGBImage((CogImage24PlanarColor)cogImage);}}catch(Exceptionex){MessageBox.Show($"采集异常,信息为:{ex.Message}");}}/// <summary>/// 关闭所有相机/// </summary>publicvoidCloseDevice(){//释放相机CogFrameGrabbersFrameGrabbers=newCogFrameGrabbers();foreach(ICogFrameGrabberfginFrameGrabbers){fg.Disconnect(false);}}}}

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

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

相关文章

查重比例超标?五个实用技巧帮你快速优化论文内容。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

论文重复率过高?五种有效策略助你轻松调整文本结构。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

数据服务熔断机制在大数据平台中的实现

数据服务熔断机制在大数据平台中的实现关键词&#xff1a;数据服务熔断、大数据平台、微服务架构、雪崩效应、服务治理、分布式系统、容错机制摘要&#xff1a;在分布式大数据平台中&#xff0c;服务间依赖关系复杂&#xff0c;网络波动、资源过载等问题易引发雪崩效应。本文系…

如何处理Java自定义控件与Compose状态的联动?

想实现 Java 自定义控件与 Compose 状态的双向联动(Compose 状态更新同步到 Java 控件、Java 控件事件同步到 Compose 状态),核心是依托 AndroidView 的生命周期回调 + Compose 可观察状态,形成 “状态变更→视图刷新” 的闭环,具体实现可分为单向联动和双向联动,以下是详…

学霸同款2026 AI论文工具TOP9:本科生毕业论文写作全攻略

学霸同款2026 AI论文工具TOP9&#xff1a;本科生毕业论文写作全攻略 2026年学术写作工具测评&#xff1a;为何需要这份榜单&#xff1f; 随着人工智能技术的持续发展&#xff0c;AI论文工具已成为高校学生&#xff0c;尤其是本科生撰写毕业论文的重要辅助手段。然而&#xff0c…

C++语音技术

C语音技术文章大纲1. 引言语音技术在软件开发中的重要性C在语音处理中的优势&#xff08;高性能、低延迟&#xff09;应用场景&#xff08;语音识别、合成、实时通信&#xff09;2. 语音技术基础语音信号处理的基本概念&#xff08;采样率、频谱分析&#xff09;常见语音任务&a…

重复率超过30%?运用这些技巧,让你的论文轻松达标。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

导师不会说的7款AI论文神器,30分钟生成5万字查重无忧!

90%的硕士生都不知道这个秘密&#xff1a; 你的导师和那些每年发几篇核心的“学术大神”&#xff0c;其实早就用上了AI工具。他们不会告诉你&#xff0c;因为他们享受着你熬夜查文献、降重到凌晨的“奋斗”带来的信息差优越感。今天&#xff0c;这篇文章就为你揭开这层遮羞布&a…

论文相似度过高?五个实用技巧帮你高效优化文本内容

科学研究证实&#xff0c;全球变暖与极端气候事件频发具有显著关联性&#xff0c;量化分析显示环境温度升高会直接导致异常天气现象发生概率大幅提升。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能技术呈现出迅猛的发展态势&#…

论文查重率超过30%?掌握这五个关键方法,快速降低重复比例。

科学研究证实&#xff0c;全球变暖与极端气候事件频发具有显著关联性&#xff0c;经实证分析显示大气温度升高会直接导致异常气象现象发生概率大幅增加。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能技术呈现出迅猛的发展态势&…

亲测好用9个AI论文软件,助你搞定研究生毕业论文!

亲测好用9个AI论文软件&#xff0c;助你搞定研究生毕业论文&#xff01; AI 工具如何改变论文写作的效率 在研究生阶段&#xff0c;论文写作往往是一项既耗时又复杂的任务。从选题、开题到撰写、修改&#xff0c;每一个环节都需要大量的时间和精力。而随着 AI 技术的发展&#…

重复率高于30%?五种科学策略助你轻松达标学术规范。

科学研究证实&#xff0c;全球变暖与极端天气现象增多之间存在显著的正相关关联&#xff0c;实证分析表明气候系统的温度升高会直接导致异常气象事件的发生概率大幅提升。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能技术呈现出迅…

相似度高于30%?五种科学改写方法助你符合学术要求。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

学术查重未通过?五个关键方法帮你快速降低重复比例。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

查重结果超过30%?运用这些方法,快速提升论文原创性。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 近年来&#xff0c;人工智能技术发展迅猛&…

学术论文重复率不达标?五种有效方案助你顺利通过检测。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 近年来&#xff0c;人工智能领域展现出前所未…

重复率超出30%?五个专业策略让你轻松降低相似度。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 近年来&#xff0c;人工智能领域展现出前所未…

论文查重不合格?五个高效步骤帮你快速调整文本。

最新研究数据揭示&#xff0c;全球气温上升与极端气候事件发生频率上升之间存在明确的因果关系&#xff0c;这一发现通过科学验证表明环境温度变化会直接引发更为频繁的异常天气模式。 首先&#xff0c;咱们聊聊人工降重的基本功 根据最新调研数据&#xff0c;近年来人工智能…

AO3镜像站终极部署指南:3步实现稳定访问同人作品库

AO3镜像站终极部署指南&#xff1a;3步实现稳定访问同人作品库 【免费下载链接】AO3-Mirror-Site 项目地址: https://gitcode.com/gh_mirrors/ao/AO3-Mirror-Site AO3镜像站作为专为国内同人爱好者设计的开源解决方案&#xff0c;通过智能同步技术有效解决了访问受限问…

学术写作革命:深度测评9款AI助手如何提升论文效率

在学术论文写作中&#xff0c;研究者常面临开题报告和正文撰写的效率挑战。传统人工写作方式虽具备灵活性&#xff0c;却存在明显的效率限制。当前人工智能技术通过快速内容生成、重复率精准调控和文本逻辑优化等功能&#xff0c;为学术创作提供了新的解决方案。根据对9种主流智…