史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

定量视频分析:测量液体的容器灌装

今天的文章是由客人博客艾萨克·布鲁斯。艾萨克已经自2019年以来MathWorks课程开发人员。他从马塞诸斯州大学阿默斯特博士在计算物理学。艾萨克已经帮助启动和支持几个课程Coursera,话题如金宝app机器人、机器学习和计算机视觉。艾萨克的文章是基于一个教训 图像处理工程和科学Coursera专业化

介绍

在这篇文章中,我将分析一个视频容器灌装的液体。现在,这听起来或许不像是世界上最令人兴奋的事情,但是想象一下,例如,你是一个质量控制工程师负责确保灌装瓶的速率是一致的。你需要确定这个速度是常数或随时间变化。要回答这个问题,你需要处理每一个帧的视频文件。但是你从哪里开始呢?
在这种情况下,我开始的 视频查看器应用程序 更熟悉的视频。这个应用程序允许你看到视频的大小,帧率,帧总数底部栏。通过使用这个应用程序,您可以快速了解我与播放帧之间的视频和导航。
movie-player.gif

创建一个分段函数

的目标测量容器内的液体,我需要一个分段函数,可以从背景中分离液体。为了确保我开发一个健壮的算法,我出口几代表帧来创建和测试一个分段函数。
export-frames.gif
颜色阈值的应用 是一个交互式分割图像基于颜色的有力工具。这个程序是特别有用的图像有明显的颜色差异感兴趣的对象和背景。在本例中,我使用了区域选择工具来突出感兴趣的像素在L * a * b *颜色空间。这让我隔离暗紫色背景和白色的液体泡沫顶部。
color-thresholder.gif
一旦我满意我的阈值结果,我出口这个分段函数的应用”。m”文件名为“liquidMask”。

检查分段函数

这个自定义函数 开发只使用几帧我导出的视频。但自信的结果,我需要确保它准确地分离出黑暗的液体在所有的帧。要做到这一点,我首先创建一个 视频的读者对象
v = VideoReader (“liquidVideo.mp4”)
v =
VideoReader属性:一般属性:名称:“liquidVideo。MATLAB驾驶mp4的路径:C: \ \ \玩博客\视频分析的时间:24 CurrentTime: 0.1000 NumFrames: <计算…>了解更多视频属性:宽度:120高度:216帧速率:10 BitsPerPixel: 24 VideoFormat:“RGB24”
然后我通过帧循环使用 hasFrame 函数。在循环内部,每一帧是定制liquidMask传递到函数,以及由此产生的面具使用并排显示 蒙太奇 函数。
hasFrame (v)%遍历所有帧
img = readFrame (v);%读一个框架
bw = liquidMask (img);%应用自定义细分功能
蒙太奇({img, bw},“BorderSize”(20、20),“写成BackgroundColor”,0.5,0.5,0.5);
drawnow
结束
mask-generation.gif
结果分割视频帧看起来太棒了!进一步的形态学操作更好的部分感兴趣的地区是可行的,但要获得一个简单的例子,他们不需要运行。

分析液体的比例

现在我可以继续最后一部分:计算容器盛满水的比例在每一帧。
开始,我需要倒带视频一开始使用CurrentTime VideoReader的财产。
v。CurrentTime = 0;
接下来,我为每一帧初始化两个变量来存储值:容器的百分比,和时间戳。
nFrames = v.NumFrames;
9 = 0 (nFrames, 1);
* = 0 (nFrames, 1);
现在我准备使用一个for循环通过视频,读段每个图像,计算容器的比例在每一帧。百分比的计算是通过计算像素的数量充满液体和除以总数量的像素。
我= 1:nFrames%遍历所有帧
img = readFrame (v);%读一个框架
bw = liquidMask (img);%使用自定义函数创建二进制掩模
liquidPart = nnz (bw);%计算液体(true)像素的数量
perc = liquidPart /元素个数(bw);%计算百分比充满液体
时间= v.CurrentTime;%马克当前时间
9 (i) =全氯乙烯;%保存填写百分比值
(我)=时间;%保存时间戳
结束
现在已经收集的数据,我阴谋容器的比例和时间如何快速液体填充容器。
情节(次,9 * 100)
标题(装有液体的容器与时间的百分比)
包含(的时间(秒))
ylabel (“填充比例”)
看那!填充率不一致。从情节,我看到周围的流动减慢8秒,15秒增加,再次放缓在20秒。
这篇文章是基于一个教训 图像处理工程和科学Coursera专业化 。你就可以完成很多这样的项目,从分段混凝土裂缝图像计算汽车的视频流量。
___
谢谢,以撒!
|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。