致力于挖掘功能强大、性能优越、创新前沿且简单易用的 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

