大数跨境
0
0

一个开源的 C# 工业相机库,含海康(HIK)、大恒、巴斯勒(Basler)等相机的常用功能!

一个开源的 C# 工业相机库,含海康(HIK)、大恒、巴斯勒(Basler)等相机的常用功能! dotNET跨平台
2025-12-17
5
导读:致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NE

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



【声明】内容源于网络
0
0
dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
内容 914
粉丝 0
dotNET跨平台 专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,
总阅读15.0k
粉丝0
内容914