首先,大恒相机自带的SDK(以下简称SDK)是一个很不错的资源,我用的是其中的C++的部分,其中的“Samples\C++ SDK\src\GxSingleCam”这个工程,如果要利用这些工程,是需要管理员权限的,这个如果不想每次都需要用管理员权限,可以自行百度拥有管理员权限的方法。
然后 ,我将我用不到的功能进行修剪,步骤大概是:打开对应的Dialog,然后看看都有什么功能,看看要删除的功能有哪些,然后一般的功能双击功能就可以直接对应到其函数位置,比如双击触发模式后的Combo box,
可以直接定位到函数位置如图
将光标放在函数命名上,然后右键转到定义,如图
将以上图中有触发模式的信息都删除,然后运行发现有几个错误,说明删除的信息还有残留
然后依次定位删除
然后可能还会出现问题,可以删除以下内容(不过不删除一般也不会影响的)
以上大概就是删除几个共能的方法吧,按照这个删除自己不需要的功能,因为SDK都是面向对象编程的,所以删除起来还是比较方便的。
应用在我的实际功能程序,首先我要用Opencv来处理相机反馈的图像,所以必须将图像转换成Mat型,而SDK获取的图像,是利用指针来存储的,所以一步步找到具体的指针,即objImageDataPointer->GetBuffer(),为了验证是否转换成功,本人加了一下显示的部分,直接显示是不可以的,不能显示全部的图像,所以我有看了SDK中的显示,有一个缩放的前提
所以我在采集的程序部分新建了一个窗口,然后让其显示在窗口中,这样不需要缩放也是可以显示的(但是有一个问题就是:关闭采集的功能好像条件不满足了,如果每次关闭时都会有错误提示,说明关闭窗口的顺序不对,要先点击关闭设备,然后关闭新建的窗口,然后再关闭SDK的窗口就好了)。随后可以依次看下图
这样就可以显示出转换后的Mat图像了。如下图(出图可能是上下颠倒的,所以加了一句反转的语句 ”flip“):