学习目标:
基于c#二次开发海康工业相机
基于Opencv开发海康工业相机(海康工业相机视觉软件)
学习内容:
学习调用海康工业相机的采图接口
可实现图片的存储
实现图片转为MAT
调用流程1:
查找目标设备-》创建句柄-》开启设备-》开始取流-》从相机中获取图像-》停止取流-》关闭设备-》销毁句柄
从相机中获取图像的接口如下:
MV_CC_GetImageBuffer_NET():该接口为主动式获取帧数据,上层应用程序需要根据帧率,控制好调用该接口的频率
MV_CC_GetOneFrameTimeout_NET():增加取流平稳性,适合用于对平稳性要求较高的场合
学习产出:
1、通过上述流程实现了图像的采集。
2、使用窗口句柄实现了对采集资源的显示和存储。
3、通过MV_CC_ConvertPixelType_NET()实现了 像素转换存储rgb图像,如果时黑白相机则不需要这一步。
4、通过Opencv进行阈值等处理。
5、使用中值滤波过滤噪点
海康相机偶尔会出线 端口占用,出现端口占用可以参考官方提示进行修正:
问题 6:调用 MV_CC_OpenDevice_NET() 返回无权限。
问题原因:1、该相机已经被其它程序占用了。2、可能是设置心跳时间过长,而程序没有执行关闭设备或者销毁设备句柄接口,直接异常退出(在调试模式下常见),导致设备一直被占用着。
解决方法:1、检查是否已经有别的程序占用了相机,或者在程序中已经被连接。2、需要等心跳时间到或者插拔下相机电源。