ToB企服应用市场:ToB评测及商务社交产业平台
标题:
C# 开源SDK 工业相机库 调用海康相机 大恒相机
[打印本页]
作者:
尚未崩坏
时间:
2024-10-1 14:02
标题:
C# 开源SDK 工业相机库 调用海康相机 大恒相机
介绍
c# 相机库,含海康、大恒品牌2D相机的常用功能。
底层采用回调+信号量模式封装 ,最大水平减小线程资源,进步采图效率。
(
哥哥们点个Start, ( ^ _ ^) 拜谢
)
开源地址
:https://gitee.com/laomaogu/mgcamctrl
现只兼容了大恒和海康,都是常用的
其他相机,看我老板啥时候换品牌吧,或者换老板?
固然如果小搭档感兴趣,可以在这个框架下直接添加
一、使用案例
Sample路径下放了案例
二、使用介绍
注意
:
一定要设置为 x64 编译平台
1、工厂模式创建实例
ICamera myCamera;
myCamera= CamFactory.CreatCamera(CameraBrand.HIK);//CameraBrand.DaHeng
复制代码
2、枚举设备,初始化
选取对应SN号的相机,初始化相机
调试的时候,经常直接中断程序
程序Kill了,但相机还未注销。。。。。。
导致每次中断重启都连不上相机,要重新断电才行
以是在初始化的时候都加了心跳(仅支持网口),
断连超1000ms后,相机就自动注销,
下次能直接连接相机啦!
中断算个diao,哈哈哈哈
//获取相机枚举
var devicelist = myCamera.GetListEnum();
//or
//var devicelist = CamFactory.GetDeviceEnum(CameraBrand.HIK);
//选对应SN,初始化相机
myCamera.InitDevice(devicelist.First());
复制代码
3、启动相机
启动相机有以下几种方式:
通例硬触发
通例软触发
硬触发 + 回调
软触发 + 回调
//硬触发模式 启动相机
myCamera.StartWith_HardTriggerModel(HardTriggerModel.Line0);
//软触发模式 启动相机
//myCamera.StartWith_SoftTriggerModel();
//硬触发 + 回调模式 启动相机
// myCamera.StartWith_HardTriggerModel_SetCallback(HardTriggerModel.Line0, CameraCallBack);
//软触发 + 回调模式 启动相机
//myCamera.StartWith_SoftTriggerModel_SetCallback(CameraCallBack);
复制代码
回调函数:
/// <summary>
/// 回调函数
/// </summary>
/// <param name="bmp"></param>
private void CameraCallBack(Bitmap bmp)
{
//执行取图后的操作
bmp.Save("./test.bmp");
}
复制代码
4、取图
为了能兼容其他视觉平台,图像格式为Bitmap
这样无论是OpenCV Halcon VisionPro 都可恣意转换想要的格式
//等待硬触发 获取图片, 设定超时:5000msmyCamera.GetImage(out Bitmap CaptureImage,5000);//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");
}
复制代码
5、注销相机
//注销当前实例
myCamera.CloseDevice();
or
//CamFactory.DestroyCamera(myCamera);
or
//CamFactory.DestroyAll();
复制代码
三、接口
1、相机操作
接口描述List < string > GetListEnum()获取相机SN枚举bool InitDevice(string CamSN)初始化相机void CloseDevice()注销相机
2、启动方式
接口描述bool StartWith_Continue_SetCallback(Action callbackfunc)回调 + 循环采图 启动相机bool StartWith_SoftTriggerModel()软触发模式 启动相机bool StartWith_HardTriggerModel(TriggerSource hardtriggeritem)硬触发模式 启动相机bool StartWith_HardTriggerModel_SetCallback(TriggerSource hardtriggeritem, Action callbackfunc)硬触发 + 回调 启动相机bool StartWith_SoftTriggerModel_SetCallback(Action callbackfunc)软触发 + 回调 启动相机
3、取图
接口描述bool GetImage(out Bitmap bitmap, int outtime = 3000)等待硬触发获取图像bool GetImageWithSoftTrigger(out Bitmap bitmap, int outtime = 3000)软触发获取图像bool SoftTrigger()软触发回调取图(详情见案例)
4、设置/获取参数
接口描述void SetCamConfig(CamConfig config)设置相机参数void GetCamConfig(out CamConfig config)获取相机参数bool SetTriggerMode(TriggerMode mode, TriggerSource triggerEnum = TriggerSource.Line0)设置触发模式及触发源bool GetTriggerMode(out TriggerMode mode, out TriggerSource hardTriggerModel)获取触发模式及触发源bool SetExpouseTime(ushort value)设置曝光时长bool GetExpouseTime(out ushort value)获取曝光时长bool SetTriggerPolarity(TriggerPolarity polarity)设置硬触发极性bool GetTriggerPolarity(out TriggerPolarity polarity)获取硬触发极性bool SetTriggerFliter(ushort flitertime)设置触发滤波时间 (us)bool GetTriggerFliter(out ushort flitertime)获取触发滤波时间 (us)bool SetTriggerDelay(ushort delay)设置触发延时bool GetTriggerDelay(out ushort delay)获取触发延时bool SetGain(short gain)设置增益bool GetGain(out short gain)获取增益值bool SetLineMode(IOLines line, LineMode mode)设置信号线模式bool SetLineStatus(IOLines line, LineStatus linestatus)设置信号线电平状态bool GetLineStatus(IOLines line, out LineStatus lineStatus)获取信号线电平状态bool AutoBalanceWhite()自动白平衡
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4