我是靠谱客的博主 英俊香氛,最近开发中收集的这篇文章主要介绍解决matlab代码中打开摄像头错误,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在用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);



查看摄像头信息:

>> 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]是设备信息,这里主要是图像获取设备的一些参数


>> 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'}
Default Format:‘MJPG_320x240"  是默认的图片格式
DeviceName: 'USB PC CAMERA P227'%设备名称
DeviceID: 1   设备号

ObjectConstructor: 'videoinput('winvideo', 1) 对象构建方式,这个绝大部分都是一样的
SupportedFormats:  我的机子上的摄像头支持的只有MJPG_320x240'    'MJPG_640x480两种格式 (好一点的摄像头支持几十种格式的都有!)—— ⊙﹏⊙!

还可以用

>> dev_win_info.SupportedFormats

查看具体摄像头支持的各种格式

现在问题终于看到了,代码中的格式和摄像头的不匹配,代码中,

vid = videoinput('winvideo', 1, 'RGB24_640x480');

明显不是摄像头支持的。那么只能改代码了

改为:

vid = videoinput('winvideo', 1, 'MJPG_640x480')

要是下面还有很多要改为MJPG的,那么可以考虑在这里添加一句再把MJPG转回RGB的代码。







最后

以上就是英俊香氛为你收集整理的解决matlab代码中打开摄像头错误的全部内容,希望文章能够帮你解决解决matlab代码中打开摄像头错误所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部