在c++写一个类接收camera数据

在c++写一个类接收camera数据,第1张

可以用C++调用openCV写成dll,接收camera数据给C#调用。后来感觉有点复杂就转而使用EmguCV了。

但是使用中发现两个bug,其一是无法得到摄像头的名字(这个可以通过C#本身枚举系统设备实现,但是这之后还是遇到一个bug,摄像头名字跟编号不对应,有两个摄像头的话,用VidioCapture打开后是另外一个),其二是通过使用SetCaptureProperty方法修改摄像头参数时无效,网上搜了半天竟然没有人遇到类似问题,也无无从解决,真是莫名其妙。

又考虑到后续还有很多图像处理工作要用OpenCV,在C#里通过EmguCV调用效率恐怕也难以保证。

Image<Bgr, Byte>[] sources;

OpenFileDialog open = new OpenFileDialog();

openCheckFileExists = true;

openMultiselect = true;

openFilter = "打开|jpg";

openShowDialog();

sources=new Image<Bgr,byte>[openFileNamesLength];

for (int i = 0; i < openFileNamesLength; i++)

{

sources[i] = new Image<Bgr, byte>(openFileNames[i]);

}

pictureBox1Image = sources[0]Bitmap;

pictureBox2Image = sources[1]Bitmap;

pictureBox3Image = sources[2]Bitmap;

Stitcher stitcher = new Stitcher(true);

Image<Bgr, byte> result = stitcherStitch(sources);

pictureBox4Image = resultBitmap;

在windows下检查摄像头驱动是否安装完好,是否使用正常。可以通过查看驱动或者打开摄像头进行确认。

如果第一步确认没有问题,右键点击我的电脑,选择的电脑-》管理->服务-》找到Vmware Usb Arbitration service启动它。启动虚拟机,进入ubuntu *** 作系统,

点击vmware player左上方的player菜单,选择移动设备管理,从中选择将camera给connect

打开shell终端,输入sudo apt-get install cheese,安装cheese工具,可能会提示需要输入密码,且需要一定的时间。

在shell中启动cheese,就会自动打开摄像头,如果想要关闭,就点击关闭按钮或者在shell中使用按键ctrl+c

使用cheese打开摄像头后,可以通过点击下方的按钮,进行拍照,录像等 *** 作。

如果想要在windows中使用摄像头就要和第三步一样,选择camear disconnect,将摄像头的控制权返回给windows。

以上就是关于在c++写一个类接收camera数据全部的内容,包括:在c++写一个类接收camera数据、Emgu CV 图像拼接或者用其他方法在C#如何实现、Emgucv打开usb摄像头的问题有没有精通或者懂的,请进等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9734925.html

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

发表评论

登录后才能评论

评论列表(0条)

保存