Cav*_*vaz 5 matlab image-processing
该getsnapshot函数需要花费大量时间执行,因为(我猜)每次调用时都会初始化网络摄像头.如果要获取具有高帧速率的图像,则会出现此问题.
我欺骗我随便发现是调用该preview函数,这使得网络摄像头处理程序getsnapshot几乎立即打开,但它保持一个小的预览窗口打开:
% dummy example
cam = videoinput(...);
preview(cam);
while(1)
img = getsnapshot(cam);
% do stuff
end
Run Code Online (Sandbox Code Playgroud)
是否有"更清洁"的加速方式getsnapshot?(未打开预览窗口)
您可以使用专为视觉应用而设计的新"机器视觉"工具箱.见下面的代码:
vid = videoinput('winvideo', 1, 'RGB24_320x240'); %select input device
hvpc = vision.VideoPlayer; %create video player object
src = getselectedsource(vid);
vid.FramesPerTrigger =1;
vid.TriggerRepeat = Inf;
vid.ReturnedColorspace = 'rgb';
src.FrameRate = '30';
start(vid)
%start main loop for image acquisition
for t=1:500
imgO=getdata(vid,1,'uint8'); %get image from camera
hvpc.step(imgO); %see current image in player
end
Run Code Online (Sandbox Code Playgroud)
如您所见,您可以使用getdata获取图像.Matlab中视频应用程序的瓶颈是预览窗口,它大大延迟了代码.新vision.VideoPlayer是很多更快(我已经使用在Matlab中.当我写了没有视觉工具箱中的第一个版本的实时视觉应用的代码,在约18 fps的实现帧速率,并使用新的工具箱得到了各地70!).
注意:我需要使用Matlab在图像应用程序中加速,你应该考虑通过mex使用OpenCV库来获得图像处理方面的良好性能.
| 归档时间: |
|
| 查看次数: |
7031 次 |
| 最近记录: |