大恒相机sdk开发+opencv开发笔记五

大恒相机sdk开发+opencv开发笔记五

1.相机开始采集
之前已经进行到相机回调函数此时我们需要发送采集命令
GXSendCommand
大恒相机sdk开发+opencv开发笔记五_第1张图片
大恒相机sdk开发+opencv开发笔记五_第2张图片
形参和之前的API基本是差不多的。
可能这里就有同学问了,我们之前不是用了回调函数,程序肯定是一行一行执行的,那么必然是会先对回调函数进行处理,但此时我们没有发送开采函数那我们不就根本不能对图像进行处理不是。这里我不能确定我理解是不是对的,我是这样理解的,首先摄像头拍摄的数据必然是会开辟一个临时内存去存放这些数据,我们在运用回调函数时,在自己写的回调函数中,给其开辟一个空间使摄像机的地址指向我们开辟的空间那么我们对这个空间内存存储的东西,当我们开始发送采集时,相机的数据一开始会进入一个临时空间,在从临时空间进入我们所开辟的内存空间。
我的理解是这个的。但是你讲发送采集命令的程序写到回调函数之上时,你会发现相机根本采集不了。这里也我比较疑惑的地方。

GXSendCommand发送停止采集命令
和上方的发送采集函数是一个意思
2.实例函数

//注册图像处理回调函数

	emStatus = GXRegisterCaptureCallback(m_hDevice, NULL, OnFrameCallbackFun);

	//发送开采命令

	emStatus = GXSendCommand(m_hDevice, GX_COMMAND_ACQUISITION_START);

	//---------------------

	//

	//在这个区间图像会通过OnFrameCallbackFun接口返给用户

	sleep(10);

	//

	//---------------------

	//发送停采命令

	emStatus = GXSendCommand(m_hDevice, GX_COMMAND_ACQUISITION_STOP);

	//注销采集回调

	emStatus = GXUnregisterCaptureCallback(m_hDevice);

注销采集回调函数和之前的采集回调函数是相同的意思
上述函数是基本采集图像的基本流程
注意需要用sleep函数进行延时不然图像会一闪而逝。

你可能感兴趣的:(机器视觉opencv,大恒相机开发笔记)