手动识别移动物体并画出运动轨迹,计算其质心坐标--matlab实现

本次主要是在一系列图片中绘制运动物体的轨迹,
思路:
1.利用matlab显示每一张图片
2.利用ginput函数获取坐标位置(这里可以优化成自动化、如颜色匹配等,但是有误差)
3.根据坐标位置绘制图像

涉及知识点:
1.图片文件路径读取
2.图片显示
3.获取指定位置坐标
4.根据坐标在已知图像上绘制轨迹


SamplePath1 =  'F:\shiyan\fire_wirl\7.0kw_00_18.66rpm_5\1\';  %存储图像的路径
fileExt = '*.bmp';  %待读取图像的后缀名
%获取所有路径
files = dir(fullfile(SamplePath1,fileExt)); 
len1 = size(files,1);
%遍历路径下每一幅图像
loc=[];
for i=1:len1
   fileName = strcat(SamplePath1,files(i).name); 
   image = imread(fileName);
   %image = imresize(image,[500 500]);
   imshow(image)
   [x,y] = ginput(1);
   loc = [loc,[x,y]];
end
fileName = strcat(SamplePath1,files(1).name);
image = imread(fileName);
imshow(image)

%绘制直线
for i=1:2:(length(loc)-3)
   %disp(i)
   x=loc(i);
   x1=loc(i+2);
   y=loc(i+1);
   y1=loc(i+3);
   line([x,x1],[y,y1]);
end


%取平均值
x_sum = 0;
y_sum = 0;
for i=1:2:(length(loc)-1)
   x_sum=x_sum+loc(i);
   y_sum=y_sum+loc(i+1);
end

%画圆心
x_ave=0;
y_ave=0;
x_ave=x_sum*2/length(loc);
y_ave=y_sum*2/length(loc);
hold on; 
plot(x_ave, y_ave,'ro');

只要更换路径即可获得相应结果
结果图如下:
在这里插入图片描述
蓝线为自己绘制点连成的,红色为质心
测试图集:(只是提供一些列图片)
链接: https://pan.baidu.com/s/1FnoDEPJoFjQfmCLewfxVeg 提取码: ipi5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值