做网站没什么用啊老师别人强,福州市网站建设公司,google关键词推广,学习做网站教程C# MG.CamCtrl 相机库#xff08;开源#xff09; 海康 大恒 介绍工厂模式创建实例选取对应SN号的相机#xff0c;初始化启动相机取图注销相机参数设置/获取接口 介绍
c# 相机库#xff0c;含海康、大恒品牌2D相机的常用功能。 底层采用回调信号量模式封装 #xff0c;最… C# MG.CamCtrl 相机库开源 海康 大恒 介绍工厂模式创建实例选取对应SN号的相机初始化启动相机取图注销相机参数设置/获取接口 介绍
c# 相机库含海康、大恒品牌2D相机的常用功能。 底层采用回调信号量模式封装 最大程度减小线程资源提高采图效率。
开源地址整理后贴出 功能持续完善中。。。
工厂模式创建实例
ICamera myCamera;
myCamera CamFactory.CreatCamera(CameraBrand.HIK);//CameraBrand.DaHeng选取对应SN号的相机初始化 //获取相机枚举
var devicelist myCamera.GetListEnum();
//or
//var devicelist CamFactory.GetDeviceEnum(CameraBrand.HIK); //选对应SN,初始化相机
myCamera.InitDevice(devicelist.First());启动相机
启动相机有以下几种方式
常规硬触发常规软触发硬触发 回调软触发 回调 //硬触发模式 启动相机
myCamera.StartWith_HardTriggerModel(HardTriggerModel.Line0); //软触发模式 启动相机
//myCamera.StartWith_SoftTriggerModel(); //硬触发 回调模式 启动相机
// myCamera.StartWith_HardTriggerModel_SetCallback(HardTriggerModel.Line0, CameraCallBack); //软触发 回调模式 启动相机
//myCamera.StartWith_SoftTriggerModel_SetCallback(CameraCallBack); 回调函数
/// summary
/// 回调函数
/// /summary
/// param namebmp/param
private void CameraCallBack(Bitmap bmp)
{//执行取图后的操作bmp.Save(./test.bmp);
}取图
//等待硬触发 获取图片, 设定超时5000ms
myCamera.GetImage(out Bitmap CaptureImage,5000);
//or 使用默认超时时间
//myCamera.GetImage(out Bitmap CaptureImage);//软触发获取图像
//myCamera.GetImageWithSoftTrigger(out Bitmap CaptureImage);/// summary
/// 回调函数
/// /summary
/// param namebmp/param
private void CameraCallBack(Bitmap bmp)
{//执行取图后的操作bmp.Save(./test.bmp);
}
注销相机
//注销当前实例
myCamera.CloseDevice();
or
//CamFactory.DestroyCamera(newcamera);
or
//CamFactory.DestroyAll();
参数设置/获取
含常用参数设置和获取 如曝光值、延时、硬触发方式等 详细见接口小节
接口
namespace MG.CamCtrl
{public interface ICamera : IDisposable{#region operate/// summary/// 获取相机SN枚举/// /summary/// returns/returnsListstring GetListEnum();/// summary/// 初始化相机/// /summary/// param nameCamSN/param/// returns/returnsbool InitDevice(string CamSN);/// summary/// 注销相机/// /summaryvoid CloseDevice();/// summary/// 回调 循环采图 启动相机/// /summary/// param namecallbackfunc/param/// returns/returnsbool StartWith_Continue_SetCallback(ActionBitmap callbackfunc);/// summary/// 软触发模式 启动相机/// /summary/// returns/returnsbool StartWith_SoftTriggerModel();/// summary/// 硬触发模式 启动相机/// /summary/// param namehardtriggeritem/param/// returns/returnsbool StartWith_HardTriggerModel(TriggerSource hardtriggeritem);/// summary/// 硬触发 回调 启动相机/// /summary/// param namehardtriggeritem/param/// param namecallbackfunc/param/// returns/returnsbool StartWith_HardTriggerModel_SetCallback(TriggerSource hardtriggeritem, ActionBitmap callbackfunc);/// summary/// 软触发 回调 启动相机/// /summary/// param namecallbackfunc/param/// returns/returnsbool StartWith_SoftTriggerModel_SetCallback(ActionBitmap callbackfunc);/// summary/// 等待硬触发获取图像/// /summary/// param namebitmap/param/// param nameouttime/param/// returns/returnsbool GetImage(out Bitmap bitmap, int outtime 3000);/// summary/// 软触发获取图像/// /summary/// param namebitmap/param/// param nameouttime/param/// returns/returnsbool GetImageWithSoftTrigger(out Bitmap bitmap, int outtime 3000);/// summary/// 软触发/// /summary/// returns/returnsbool SoftTrigger();#endregion#region SettingConfig/// summary/// 设置相机参数/// /summary/// param nameconfig/paramvoid SetCamConfig(CamConfig config);/// summary/// 获取相机参数/// /summary/// param nameconfig/paramvoid GetCamConfig(out CamConfig config);/// summary/// 设置触发模式及触发源/// /summary/// param namemode/param/// param nametriggerEnum/param/// returns/returnsbool SetTriggerMode(TriggerMode mode, TriggerSource triggerEnum TriggerSource.Line0);/// summary/// 获取触发模式及触发源/// /summary/// param namemode/param/// param namehardTriggerModel/param/// returns/returnsbool GetTriggerMode(out TriggerMode mode, out TriggerSource hardTriggerModel);/// summary/// 设置曝光时长/// /summary/// param namevalue/param/// returns/returnsbool SetExpouseTime(ushort value);/// summary/// 获取曝光时长/// /summary/// param namevalue/param/// returns/returnsbool GetExpouseTime(out ushort value);/// summary/// 设置硬触发极性/// /summary/// param namepolarity/param/// returns/returnsbool SetTriggerPolarity(TriggerPolarity polarity);/// summary/// 获取硬触发极性/// /summary/// param namepolarity/param/// returns/returnsbool GetTriggerPolarity(out TriggerPolarity polarity);/// summary/// 设置触发滤波时间 us/// /summary/// param nameflitertime/param/// returns/returnsbool SetTriggerFliter(ushort flitertime);/// summary/// 获取触发滤波时间 us/// /summary/// param nameflitertime/param/// returns/returnsbool GetTriggerFliter(out ushort flitertime);/// summary/// 设置触发延时/// /summary/// param namedelay/param/// returns/returnsbool SetTriggerDelay(ushort delay);/// summary/// 获取触发延时/// /summary/// param namedelay/param/// returns/returnsbool GetTriggerDelay(out ushort delay);/// summary/// 设置增益/// /summary/// param namegain/param/// returns/returnsbool SetGain(short gain);/// summary/// 获取增益值/// /summary/// param namegain/param/// returns/returnsbool GetGain(out short gain);/// summary/// 设置信号线模式/// /summary/// param nameline/param/// param namemode/param/// returns/returnsbool SetLineMode(IOLines line, LineMode mode);/// summary/// 设置信号线电平状态/// /summary/// param nameline/param/// param namelinestatus/param/// returns/returnsbool SetLineStatus(IOLines line, LineStatus linestatus);/// summary/// 获取信号线电平状态/// /summary/// param nameline/param/// param namelineStatus/param/// returns/returnsbool GetLineStatus(IOLines line, out LineStatus lineStatus);/// summary/// 自动白平衡/// /summary/// returns/returnsbool AutoBalanceWhite();#endregion}
}