检测液体随时间移动的距离

3次查看(最近30天)
Mostafa马哈茂德
Mostafa马哈茂德 2020年5月14日
编辑: Mostafa马哈茂德2020年5月22日
大家好,请问我要计算水平和垂直的速度和距离的时间不断扩大的液体和试图找到最大垂直和horozintal距离及其发生时间,我通过相机,记录结果的数量是30帧率10 fps,提前谢谢你
现在我写了这段代码来计算水平和垂直距离,它给了准确的结果,但循环不工作,因为它显示了我最后一帧,请指导我去做所有帧,选择最大垂直和horozintal距离及其发生时间,和情节的时间,多谢
%阅读视频
v = VideoReader (“r.avi”);
%确定有多少帧。
numberOfFrames = v.NumberOfFrames;
n = numberOfFrames;
k = 1: n;
%以使视频成为帧
b =阅读(v, k);
%将帧二值化
z = imbinarize (b):
%来定义图像的属性
统计= regionprops (“表”, z,“重心”“MajorAxisLength”“MinorAxisLength”“区域”
如果有两个以上的对象,则删除较低的像素
z2 = bwareafilt (z, 1000)
imshow (z2)
结束
%来计算垂直和horz。距离
k = 1: n;
%沿每列内的行平均。
horizontalProfile = cross (z2, 1);
darkPixels = horizontalProfile < 1%或任何值…
查找起始列
startingColumn = find(darkPixels, 1,“第一”);
找到结束列
endingColumn = find(darkPixels, 1,“最后一次”);
hdistance = abs (endingColumn-startingColumn);
%%在每一行中沿着列平均。
verticalProfile = mean(z2, 2);
darkPixels2 = verticalProfile < 1%或任何值…
找到起始行
startingrow = find(darkPixels2, 1,“第一”);
找到结束列
endingrow = find(darkPixels2, 1,“最后一次”);
vdistance = abs (endingrow-startingrow);
结束
2的评论
Mostafa马哈茂德
Mostafa马哈茂德 2020年5月15日
好的,非常感谢,我在循环中有一个问题,我如何测量一个帧,并应用于所有帧,如果我找到一些代码,我会很感激

登录评论。

接受的答案

darova
darova 2020年5月14日
你知道怎么看所有的图片了吗?
binarize 图像和使用 找到
[ii, jj] =找到(A);找到所有像素
jj(结束)剧照(1)%的宽度
马克斯(2)分钟(2)%的高度
9日评论
Mostafa马哈茂德
Mostafa马哈茂德 2020年5月22日
我已经解决了这个问题,非常感谢

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!