致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!
项目概述
MgCamCtrl 是一个专为工业相机设计的开源库,旨在为开发者提供一套统一且易用的接口,以控制多种品牌的工业相机。该库特别适用于需要集成海康(HIK)、大恒、巴斯勒(Basler)等品牌相机的应用场景,包括但不限于:
自动化检测:在生产线上进行产品质量的自动检测。
机器视觉:用于机器人导航、物体识别与定位。
科研实验:在科学研究中捕捉高速或高精度的图像数据。
安防监控:需要高清晰度、高稳定性相机的监控系统。
功能模块
MgCamCtrl 提供了以下核心功能模块:
相机连接与管理:支持多种品牌相机的连接、断开及状态监控。
图像采集:实现单帧、连续帧的图像采集功能。
参数配置:允许用户配置相机的各种参数,如曝光时间、增益、帧率等。
图像处理:提供基本的图像处理功能,如图像转换、滤波等(具体功能依据库实现而定)。
异常处理:捕获并处理相机操作过程中可能出现的异常。
功能特点
多品牌支持:统一接口控制海康、大恒、巴斯勒等多种品牌相机。
易于集成:提供简洁的API,便于开发者快速集成到现有系统中。
高性能:优化图像采集与处理流程,确保高效运行。
可扩展性:模块化设计,便于添加对新品牌相机的支持。
使用流程
工厂模式创建实例
ICamera myCamera; myCamera= CamFactory.CreatCamera(CameraBrand.HIK);//CameraBrand.DaHeng | CameraBrand.Basler枚举SN
//获取相机枚举 var devicelist = myCamera.GetListEnum(); //or //var devicelist = CamFactory.GetDeviceEnum(CameraBrand.HIK);初始化
//选对应SN,初始化相机 myCamera.InitDevice(devicelist.First());取图
为了能兼容其他视觉平台,图像格式为Bitmap 这样无论是OpenCV Halcon VisionPro 都可任意转换想要的格式
//等待硬触发 获取图片, 设定超时:5000ms myCamera.GetImage(out Bitmap CaptureImage,3000); //or 使用默认超时时间 //myCamera.GetImage(out Bitmap CaptureImage); //软触发获取图像 //myCamera.GetImageWithSoftTrigger(out Bitmap CaptureImage); /// <summary> /// 回调函数 /// </summary> /// <param name="bmp"></param> private void CameraCallBack(Bitmap bmp) { //执行取图后的操作 bmp.Save("./test.bmp"); }注销相机
//注销当前实例 myCamera.CloseDevice(); ////or //CamFactory.DestroyCamera(myCamera); ////or //CamFactory.DestroyAll();相机参数配置
源码地址
https://gitee.com/laomaogu/mgcamctrl
一款基于 .NET 开源免费的在线考试系统
一个开源、简单、快速的 .NET Word 模板引擎
一款开源、流行的 WPF 控件库,提供近 80 款常用的组件!
一个基于 .NET 开源、高性能、可扩展的套接字服务器应用程序框架
全面支持国产化!C# 开源跨平台 UI 框架,支持 Windows、Mac、Linux
一个基于 .NET 开源的分布式任务调度系统,支持跨平台多节点部署运行!
C#并发流程控制框架、运动控制框架,适用于工业自动化运动控制、机器视觉流程开发!
一个使用 WPF 做一个 Diagram 画板(包含流程图FlowChart,思维导图MindEditor)
9.7k Star,一份超级全面 C#/.NET/.NET Core 学习、工作、面试指南!