在用matlab2013运行一个视觉算法的时候,出现了如下问题:
“Error using videoinput (line 319)
The FORMAT specified is not supported by this device. See IMAQHWINFO(ADAPTORNAME).”
原来是自己的摄像头支持的格式和代码中的格式不对应。
解决办法:
(1)
打开摄像头:
source.vid = videoinput('winvideo', 1);
set(source.vid,'ReturnedColorSpace','grayscale');
vidRes = get(source.vid, 'VideoResolution');
nBands = get(source.vid, 'NumberOfBands');
hImage = image( zeros(vidRes(2), vidRes(1), nBands) );
preview(source.vid, hImage);
查看摄像头信息:
1
2
3
4
5
6
7
8
9
10
11>> win_info=imaqhwinfo('winvideo') win_info = AdaptorDllName: [1x81 char] AdaptorDllVersion: '4.5 (R2013a)' AdaptorName: 'winvideo' DeviceIDs: {[1]} DeviceInfo: [1x1 struct]
DeviceIDs: {[1]}是设备ID号
DeviceInfo: [1x1 struct]是设备信息,这里主要是图像获取设备的一些参数
1
2
3
4
5
6
7
8
9
10
11>> dev_win_info=win_info.DeviceInfo dev_win_info = DefaultFormat: 'MJPG_320x240' DeviceFileSupported: 0 DeviceName: 'Lenovo Q350 USB PC Camera' DeviceID: 1 VideoInputConstructor: 'videoinput('winvideo', 1)' VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 1)' SupportedFormats: {'MJPG_320x240' 'MJPG_640x480'}
DeviceName: 'USB PC CAMERA P227'%设备名称
DeviceID: 1 设备号
ObjectConstructor: 'videoinput('winvideo', 1) 对象构建方式,这个绝大部分都是一样的
SupportedFormats: 我的机子上的摄像头支持的只有MJPG_320x240' 'MJPG_640x480两种格式 (好一点的摄像头支持几十种格式的都有!)—— ⊙﹏⊙!
还可以用
1>> dev_win_info.SupportedFormats
查看具体摄像头支持的各种格式
现在问题终于看到了,代码中的格式和摄像头的不匹配,代码中,
1vid = videoinput('winvideo', 1, 'RGB24_640x480');
明显不是摄像头支持的。那么只能改代码了
改为:
1vid = videoinput('winvideo', 1, 'MJPG_640x480')
要是下面还有很多要改为MJPG的,那么可以考虑在这里添加一句再把MJPG转回RGB的代码。
最后
以上就是英俊香氛最近收集整理的关于解决matlab代码中打开摄像头错误的全部内容,更多相关解决matlab代码中打开摄像头错误内容请搜索靠谱客的其他文章。
发表评论 取消回复