0

这是我一直在努力解决的一个问题:当我更改相机属性(例如饱和度或曝光)时,为什么除非我使用它,否则它不会对我从相机捕获的图像产生影响preview()

操作系统:Windows 7

MATLAB:R2010b

摄像头:Microsoft Lifecam Studio

我尝试了什么:

vid = videoinput('winvideo',2);
set( vid, 'ReturnedColorSpace', 'rgb' );
set(getselectedsource(vid),'ExposureMode','manual');
set(getselectedsource(vid),'Exposure',-9);
pic = getsnapshot(vid);
4

1 回答 1

0

我无法开始getsnapshot()工作,但preview()总是会在第一帧时闪烁旧设置,几乎立即切换到新设置。因此,您可以设置在每个触发器上抓取的帧数,然后您只需抓取具有新设置的后续帧:

set( vid, 'FramesPerTrigger', 2 ); % After setting up camera and its settings
start(vid);
pic = getdata(vid);
stop(vid);
figure,imshow(pic(:,:,:,2));       % The second frame has the new settings applied

抓取 2 帧并使用第二帧对我有用。如果这不一致,请尝试稍后的帧,只要确保您通过FramesPerTrigger属性抓取尽可能多的帧即可。

于 2013-07-05T19:40:20.877 回答