海康Gige摄像头搭建过程

海康Gige摄像头搭建过程,第1张

GrabImage.py抓取了一帧图片,是数据流,我们要解析成图片输入到YOLO里,图片是通过MvCameraControl_class类里的MV_CC_GetOneFrameTimeout函数抓取的,MV_CC_GetOneFrameTimeout是通过动态库MvCameraControl.dll封装的,不过我们只需要解流就好,看 ConvertPixelType.py里的解流过程,解流是通过MvCameraControl_class类里的MV_CC_ConvertPixelType函数实现的,同样是在MvCameraControl.dll,我们需要反编译看下dll文件中函数的实现,反编译失败,都是乱码,海康那边说也不能给源码

后来和海康的人沟通询问他们这个流的解码方式,他们说可以自己设置图片格式,然后我就开启了MVS软件把图片设为RGB,解码较为方便。后面发现其实我们只要对返回的pdata指向的data_buf的c_ubyte字节数组进行 *** 作,可以不关心具体的实现过程,因为现在知道了码流的格式。有关c_ubyte的资料蛮少的,我开始是一个个读取字节,每次耗时0.27秒,性能太差,后面诸多尝试,最后发现直接用deepcopy拷贝到一个list再转化为numpy的array,进行reshape为三位矩阵再转化为图片,即可进行检测,帧率由2帧/s提高到20帧/s,还有有一个关键点是把数组转化为np.uint8的类型

首先确定安装好了摄像头的驱动,打开“应用程序”>“image acquisition”查看 新建图形用户界面:“新建”>“图形用户界面” 从左侧选择控件,添加到面板 双击空间进行属性设置,“string”为显示名称,“tag”为id。将两个axes的“visable“属性设置为”off“

先声明这是我回答过的问题,已经有几个了,因为是同一个问题,所以直接拿来:

VS2008和VS2005应该很像,我还没有感觉到有什么大的差别。和VC6.0是有较大差别。不过养成先建项目的习惯后,也就没有太大的差别了。因为VS2008不仅仅是用来编译C++的,所以项目比较多,要学会建自己需要的项目。以下是根据文件->新建->项目的向导就基本能看懂了:1、在VS2008中要建项目才能生成程序。2、如果是基础教程中的程序的话(在命令行下运行),一般是选择Visual C++中的Win32选项中的Win32项目。3、在应用程序设置中选择“控制台应用程序”和“空项目”。4、在解决方案窗口中“源文件”上右击->“添加”->“新建项”,在d出的窗口中选择“代码”选项中的“C++文件”。5、此时才会在菜单中出现编译、生成、运行、调试,分别在“生成”和“调试”菜单中。后面的 *** 作和VC6.0中的大致相同。不过库还是不一样的。下面代码是一个临时写的一个简单例子,来说明它们之间的差别,以后根据这个学习中总结一下就好了,不懂的装个MSDN看看就会明白了。呵呵!#include <iostream>

void main()

{

for(int i=1i<=9i++)

{

for(int j=1j<=ij++)

std::cout<<i<<"*"<<j<<"="<<i*j<<"\t"

std::cout<<std::endl

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11426577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存