C#版-海康工业相机SDK实现隔时取帧方式

C#版-海康工业相机SDK实现隔时取帧方式

项目需要用到相机实时采集并每隔几帧处理一帧的功能,由于之前未接触过,一直不知道怎么实现,通过查阅各种资料,终于解决了相机隔时取帧并显示,特此记录下,做个笔记记录下。主要参考了@物随心转的这篇帖子,给了很大的引导作用,非常感谢!

相机SDK的采集帧的流程各个厂商大多一致,下面以海康相机通过回调方式取图为例:

SDK提供注册回调函数的接口,用户可以将自己定义的回调函数注册在SDK内部,SDK获取到相机图像会主动回
调到应用程序供用户处理,此方式可以简化用户程序逻辑。

• 回调取图方式使用场景:

可以使用 MV_CC_RegisterImageCallBackEx_NET() 接口注册回调函数。回调函数可以自定义,用于自动回
调获取的图像。此方法可以简化应用程序逻辑。如果你想设置获取RGB24或BGR24格式的图像数据,也可以使用
MV_CC_RegisterImageCallBackForRGB_NET() 或 MV_CC_RegisterImageCallBackForBGR_NET() 来注册回
调函数。

• 注意事项:

a、回调函数中不建议有耗时操作、线程锁等,容易造成回调阻塞。
b、Pdata返回的是一个地址指针,将其作为图像处理操作,由于较耗时,为避免线程阻塞,建议将Pdata里面
的数据copy出来另建线程使用。

海康相机采图流程
在每次StartGrabbing取一帧的时候内部就会自动调用一次回调函数,因此可在回调函数中计数取帧,并在回调函数中通过MV_CC_DisplayOneFrame_NET将视频流显示在pictureBox控件上。

回调函数部分实现如下.

	static int A = 0;
	static bool B = false;
   	MyCamera.MV_DISPLAY_FRAME_INFO stDisplayInfo1 = new MyCamera.MV_DISPLAY_FRAME_INFO();//接受图像信息,后续再转成需要的格式
  	//回调函数的实现
   	public void ImageCallbackFunc(IntPtr pData, ref MyCamera.MV_FRAME_OUT_INFO_EX pFrameInfo, IntPtr pUser)
   	{
		A++;
        if (A == 5)
        {
        	B = true;
            A = 0;
       	}
       	while (B)
       	{
			stDisplayInfo1.hWnd = pictureBox2.Handle;
            stDisplayInfo1.pData = pData;
            stDisplayInfo1.nDataLen = pFrameInfo.nFrameLen;
            stDisplayInfo1.nWidth = pFrameInfo.nWidth;
            stDisplayInfo1.nHeight = pFrameInfo.nHeight;
            stDisplayInfo1.enPixelType = pFrameInfo.enPixelType;
            m_pMyCamera.MV_CC_DisplayOneFrame_NET(ref stDisplayInfo1);
            B = false;
       }

       MyCamera.MV_DISPLAY_FRAME_INFO stDisplayInfo = new MyCamera.MV_DISPLAY_FRAME_INFO();
       stDisplayInfo.hWnd = pictureBox1.Handle;
       stDisplayInfo.pData = pData;
       stDisplayInfo.nDataLen = pFrameInfo.nFrameLen;
       stDisplayInfo.nWidth = pFrameInfo.nWidth;
       stDisplayInfo.nHeight = pFrameInfo.nHeight;
       stDisplayInfo.enPixelType = pFrameInfo.enPixelType;
       m_pMyCamera.MV_CC_DisplayOneFrame_NET(ref stDisplayInfo);

}

C#代码见:这里

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海康工业相机SDK是用于开发基于海康相机的应用程序的软件开发工具包。它提供了一系列的API和函数,用于控制相机的各种功能,如图像采集、图像处理、参数调整等。使用海康工业相机SDK可以方便地与相机进行通信,并进行自定义的开发和集成。 要进行海康工业相机SDK开发,首先需要下载并安装相应的SDK软件包。然后,在开发环境中配置SDK,并使用提供的API进行开发。具体步骤如下: 1. 下载SDK软件包:访问海康官网或联系销售代表获取相应的SDK软件包。根据自己的操作系统选择正确的本进行下载。 2. 安装SDK软件包:将下载的SDK软件包解压到指定的目录,并按照安装说明进行安装。 3. 配置开发环境:根据使用的开发语言和开发环境,配置相应的编译器和开发工具。例如,如果使用C++进行开发,需要配置编译器和IDE。 4. 导入SDK库文件:在开发环境中创建一个新项目,并将SDK提供的库文件导入到项目中。这样可以在代码中使用SDK提供的函数和类。 5. 使用API进行开发:根据自己的需求,使用SDK提供的API进行开发。可以通过调用相应的函数来实现图像采集、图像处理和参数调整等功能。 在进行海康工业相机SDK开发时,可以参考SDK提供的文档和示例代码,了解API的使用方法和功能。同时,可以通过海康官方技术支持或开发者社区获取帮助和交流经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值