无法检测IDS uEye相机

56个视图(30天)
曼努埃尔
曼努埃尔 2014年11月27日
评论道: sanjoy khawas2018年8月22日
你好,
我有一个matlab 2012 b与图像采集工具箱安装4.4版本,想从我的记录id uEye相机应该DirectShow的兼容。
使用detectedDecice Uitility mathwork ( http://de.mathworks.com/hardware-金宝appsupport/directshow.html winvideo)检测到摄像头的驱动程序。
但是如果我运行imaghwinfo (winvideo)没有相机。
我试图得到这个摄像头支持包(金宝app //www.tatmou.com/matlabcentral/fileexchange/45182-matlab-金宝appsupport-package-for-usb-webcams ),但这似乎只有Matlab 2014 >
你有什么建议关于如何访问这个相机?
谢谢你!曼努埃尔
2的评论
sanjoy khawas
sanjoy khawas 2018年8月22日
你好亚当,
谢谢你分享代码。我也试图连接ueye相机通过Matlab的协议(使用max文件)提到了你。然而,我可以连接相机但matlab不显示任何图片。
该命令的输出窗口显示连接的相机——数量:1 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = # DevID CamID Sens串行模型状态= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 1 1 558 0 4103146965 UI318xCP-M 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
初始化第一个可用的相机……设置colormode单色……显示模式设置为位图(DIB)…
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =相机信息= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =相机#:1传感器名称:UI318xCP-M单色:1最大宽度:2592 Max高度:2048年全球快门:1像素大小(嗯):4.800000 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
错误使用uEye_Test要求11132555233280 x10x64 (6635520.0 gb)数组超过最大数组大小的偏好。创建数组超过这个极限可能需要很长时间,导致MATLAB变得反应迟钝。有关更多信息,请参见数组大小限制或首选项面板。
有什么想法和建议是高度赞赏。

登录置评。

接受的答案

亚当·怀亚特
亚当·怀亚特 2014年12月9日
我没有使用这个路线(这是我的初步计划,我购买了IMAQ工具箱只是为了这个目的)。无论如何,路要走是通过. net接口连接,这是一个例子:
使用. net程序集不是那样简单的c#因为Matlab并不直接支持指针,但是有一个解决方法如下指出。金宝app
记得“退出”相机之前试图re-initialise同样的相机
%增加净组装如果它不存在
%可能需要改变特定位置的库
asm = System.AppDomain.CurrentDomain.GetAssemblies;
如果任何(arrayfun ~ (@ (n) strncmpi (char (asm.Get (n - 1) .FullName),
“uEyeDotNet”长度(“uEyeDotNet”1:asm.Length))))
NET.addAssembly (
“C: \ Program Files \ id \ uEye \开发\ DotNet \ \ uEyeDotNet.dll签署“);
结束
%创建相机对象句柄
凸轮= uEye.Camera;
%开放1照相机
%的回报,如果不成功
如果~ strcmp (char (cam.Init),“成功”)
错误(无法初始化摄像头的);
结束
%显示模式设置为位图(DiB)
如果~ strcmp (char (cam.Display.Mode.Set (uEye.Defines.DisplayMode.DiB)),
“成功”)
错误(“不能设置显示模式”);
结束
%设置colormode 8位生
如果~ strcmp (char (cam.PixelFormat.Set (uEye.Defines.ColorMode.SensorRaw8)),
“成功”)
错误(“不能设置像素格式”);
结束
%设置触发模式软件(单个图像采集)
如果~ strcmp (char (cam.Trigger.Set (uEye.Defines.TriggerMode.Software)),“成功”)
错误(“不能设置触发格式”);
结束
%分配图像内存
[ErrChk, img。ID] = cam.Memory.Allocate(真正的);
如果~ strcmp (char (ErrChk),“成功”)
错误(无法分配内存的);
结束
%获得图像信息
[ErrChk, img。宽度,img。高度,img。位,img.Pitch]
= cam.Memory.Inquire (img.ID);
如果~ strcmp (char (ErrChk),“成功”)
错误(“无法获取图像信息”);
结束
%获得图像
如果~ strcmp (char (cam.Acquisition.Freeze(真正的)),“成功”)
错误(无法获取图像的);
结束
%提取图像
[ErrChk, tmp] = cam.Memory.CopyToArray (img.ID);
如果~ strcmp (char (ErrChk),“成功”)
错误(无法获取图像数据的);
结束
%重塑形象
img。Data =重塑(uint8 (tmp), [img。宽度,img。高度,img.Bits / 8]);
%画出图像
himg = imshow (img.Data,“边界”,“紧”);
%获得&画100倍
n = 1:10 0
%获得图像
如果~ strcmp (char (cam.Acquisition.Freeze(真正的)),“成功”)
错误(无法获取图像的);
结束
%提取图像
[ErrChk, tmp] = cam.Memory.CopyToArray (img.ID);
如果~ strcmp (char (ErrChk),“成功”)
错误(无法获取图像数据的);
结束
%重塑形象
img。Data =重塑(uint8 (tmp), [img。宽度,img。高度,img.Bits / 8]);
%画出图像
集(himg,CData的,img.Data);
drawnow;
结束
%关闭相机
如果~ strcmp (char (cam.Exit),“成功”)
错误(“不能关闭相机”);
结束
1评论
Myrtle42
Myrtle42 2018年6月7日
谢谢你的了良好的注释示例代码!我意识到这是旧的但是也有类似的问题,一个IDS相机和尝试了这个解决方案。注意:我必须改变“比较字符串”“strcmpi”,因为它实际上是输出“成功”而不是“成功”这个词。现在,伟大的工作。
写,这只给我10 fps 1920 x 1200 id相机(名义max 180 fps)。我意识到这是减速的形象策划和移动数据从内存。你能发布一个例子如何写图片尽快到磁盘使用净框架(使用自由奔跑)?

登录置评。

更多的答案(0)

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!