使用matlab显示实时处理的网络摄像头流

时间:2014-04-10 06:06:27

标签: matlab real-time webcam

我正在尝试在直播视频上使用色度键算法。我需要进行实时网络摄像头输入,实时处理并显示它。我已经在图像上使用了色度键算法。

如何处理网络摄像头输入并立即显示。我尝试使用snapshot()并将图像传递给色度键算法,但即使我提高了快照的速度,它也太慢了。我想要一个流畅的输出。

[另外,如果有比Matlab更好的选择,请告诉我。 ]

2 个答案:

答案 0 :(得分:1)

尝试使用视频输入,然后使用getsnapshot()连接:http://www.mathworks.de/de/help/imaq/preview.html preview连接到相机并在每个帧上断开连接(因此帧速度慢) >

此示例适用于您: http://www.mathworks.de/products/imaq/code-examples.html?file=/products/demos/shipping/imaq/demoimaq_LiveHistogram.html

如图所示,您甚至可以定义一个回调处理函数,该函数在每个新接收的帧上调用。

答案 1 :(得分:0)

您必须将TriggerType设置为manual,否则getsnapshot()每次需要一个帧时都会创建(并销毁)相机的连接。通过将其设置为手动,您可以启动相机一次,获取相框并在完成后停止相机。

以下是一个例子:

vidobj = videoinput('winvideo', 1, 'RGB24_640x480');
triggerconfig(vidobj, 'manual');

start(vidobj);
while true % Or any stop condition
    img = getsnapshot(vidobj);

    % Process the frame.
    ...

    imshow(img);
    drawnow;
end