主要内容

视频显示与实时直方图

这个例子展示了如何设置和显示实时直方图。

图像采集工具箱™和图像处理工具箱™可用于显示带有实时直方图的视频提要。这在手动校准相机设置(如光圈)时非常有用。这个例子展示了如何使用PREVIEW函数,它的相关自定义更新函数和IMHIST函数来放置一个视频预览窗口靠近实时直方图。这里的技术也可以用于显示其他实时信息。例如,实时视频feed可以放在过滤过的视频旁边。

中使用的回调函数

  • MATLABROOT \工具箱\ imaq \ imaqdemos \帮手

目录,该目录将在图形窗口中显示实时直方图。

看一段视频和直方图.(8秒)

设置视频对象和图

%访问图像采集设备。vidobj = videoinput (“winvideo”);%将输入图像转换为灰度。vidobj。ReturnedColorSpace =“灰度”

与视频大小相同的图像对象用于存储和显示传入帧。

%获取视频分辨率。vidRes = vidobj.VideoResolution;创建一个图形和一个图像对象。图(f =“可见”“关闭”);%视频分辨率属性返回宽度除以高度的值,但是% MATLAB图像是高度通过宽度,所以翻转的值。成像仪= fliplr (vidRes);次要情节(1、2、1);hImage = imshow(0(成像));%设置显示图像的轴,以保持宽高比%的框架。图像

指定UpdatePreviewWindowFcn回调函数,每次有新帧可用时调用该函数。回调函数负责显示新的帧和更新直方图。它也可以用于应用自定义处理框架。关于如何使用这个回调的更多细节可以在PREVIEW函数的文档中找到。这个回调函数本身是在文件中定义的update_livehistogram_display.m

setappdata (hImage“UpdatePreviewWindowFcn”, @update_livehistogram_display);

定义回调函数

%下面是update_livehistogram_display的内容。米中含有%回调函数。dbtype (“update_livehistogram_display.m”
这个回调函数更新显示的帧和直方图。3 4%版权所有2007-2017 The MathWorks, Inc.显示当前图像帧。8 set(hImage, 'CData', event.Data);9 10%选择直方图上的第二个子图。11个次要情节(1、2、2);绘制直方图。选择128箱更快地更新显示。14 imhist(事件。数据,128);15 16%刷新显示。17 drawnow

开始预览

%预览功能启动相机和显示。在上面的图像%显示视频馈电也指定。预览(vidobj hImage);%查看30秒的直方图。暂停(30);

上面是直方图和视频feed的示例图像。

停止预览图像并删除图像。stoppreview (vidobj);删除(f);

当视频输入对象不再需要时,删除并清除关联的变量。

删除(vidobj)清晰vidobj