视频显示与实时直方图

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

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

方法中找到的回调函数

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

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

观看视频提要和直方图的片段。(8秒)

设置视频对象和图形

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

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

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

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

setappdata (hImage“UpdatePreviewWindowFcn”, @update_livehistogram_display);

定义回调函数

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

开始预览

%预览功能启动摄像头并显示。在其上的图像%显示视频feed也被指定。预览(vidobj hImage);%查看直方图30秒。暂停(30);

以上是直方图和视频提要的样本图像。

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

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

删除(vidobj)清晰vidobj