主要内容

视频显示与现场直方图

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

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

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

设置视频对象和图形

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

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

检索视频分辨率。vidRes = vidobj.VideoResolution;创建一个图形和一个图像对象。F =数字(“可见”“关闭”);视频分辨率属性返回宽度除以高度的值,但是MATLAB图像是高度除以宽度,所以翻转值。imageRes = fliplr(vidRes);次要情节(1、2、1);hImage = imshow(零(imageRes));设置显示图像的轴,以保持图像的纵横比%传入帧。图像

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

setappdata (hImage“UpdatePreviewWindowFcn”, @update_livehistogram_display);

定义回调函数

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

开始预览

PREVIEW功能启动相机和显示。到的图像还指定了显示视频提要。预览(vidobj hImage);查看30秒的直方图。暂停(30);

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

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

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

删除(vidobj)清晰vidobj