带有实时直方图的视频显示

此示例显示如何设置和显示实时直方图。

图像采集工具箱™与图像处理工具箱™一起使用可用于显示带有实时直方图的视频源。当使用手动控件校准相机设置时,这可能很有用。此示例显示如何使用预览功能,其关联的自定义更新功能和IMHIST功能,以放置与实时直方图相邻的视频预览窗口。这里的技术也可用于显示其他实况信息。例如,可以将实时视频馈送放在视频的过滤版本旁边。

此示例使用回调函数,在其中找到

  • matlabroot \ toolbox \ imaq \ imaqdemos \助手

目录,显示图形窗口中的实时直方图。

观看视频饲料和直方图的剪辑.(8秒)

设置视频对象和图形

%访问图像采集设备。Vidobj = VideoInput('winvideo');%将输入图像转换为灰度。vidobj.returnedcolorspace ='灰度';

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

%获取视频分辨率。vidRes = vidobj.VideoResolution;%创建一个图形和图像对象。f =图('可见的''离开');%视频分辨率属性返回高度的值,但是%MATLAB图像的高度宽度为宽度,因此翻转值。Imageres = pliplr(vidres);子图(1,2,1);hemage = imshow(zeros(成像仪));%设置显示图像的轴以保持宽高比%传入框架。图片;

指定每次可用新帧时调用的updatePreviewWindowfcn回调函数。回调函数负责显示新帧并更新直方图。它也可用于将自定义处理应用于帧。有关如何使用此回调的更多详细信息,可以在预览功能的文档中找到。此回调函数本身在文件中定义update_livehistogram_display.m.

setappdata(事实,'updatepreviewwindowfcn', @update_livehistogram_display);

定义回调函数

%以下是包含的update_livehistogram_display.m的内容%回调函数。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,Hemage);%查看直方图30秒。暂停(30);

以上是直方图和视频馈送的样本图像。

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

一旦不再需要视频输入对象,删除和清除关联变量。

删除(Vidobj)清除vidobj.