www.gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第8章/代码8-5.txt

    
% 取得一个图像采集装置的使用权。
vidobj = videoinput('winvideo', 1, 'RGB24_320X240');
% 使用预览窗口,适当定位摄像头。.
preview(vidobj)
pause(1)
%采集没有运动的背景图像。
background = getsnapshot(vidobj);
%将图像background的数据类型由uint8 转换到double。
background = double(background)/255;
% 在一个图形窗口中显示图像background。
imagesc(background);
% 将物体置入运动状态。
pause(2);
% 设置捕获图形窗口以便生成动态渲染。
set(gcf, 'DoubleBuffer', 'on');
% 设置捕获设备。
vidobj.FramesPerTrigger = 20;
% 开始图像捕捉。
start(vidobj)
% 当载入数据时,实现当前图像和背景图像的线性混合。
current = getdata(vidobj, 1, 'double');
transparent = (current * 0.5) + (background * 0.5);
% 显示处理后的图像。
imagesc(transparent);
% 对所有后续图像进行相同的处理。
while (vidobj.FramesAvailable > 0),
    %实现当前图像和背景图像的线性混合。
    current = getdata(vidobj, 1, 'double');
    transparent = (current * 0.5) + (background * 0.5);
    %显示处理后的图像。
    imagesc(transparent);
end
% 当不再需要视频输入对象时,从workspace 中对其进行删除和清除处理。
delete(vidobj)
clear vidobj