附录
'Sensitivity',0.85,'Method','twostage');
%delete(h)
Part 1. 视频读取
%%Import video
tic;
path='D:\西南交通大学\结构1班\学习\智能建造\智能建造作
业20230624\video.avi';
outpath='D:\西南交通大学\结构1班\学习\智能建造\智能建造
作业20230624/image';
readerObj = VideoReader(path);
videoFrames = read(readerObj); %读取所有帧
numberFrames = get(readerObj, 'NumberOfFrames'); % 帧数
startFrame =1;
endFrame =numberFrames;
%%Output
for i = startFrame : endFrame
frame = read(readerObj,i);
imshow(frame);
outputFile =[outpath,'/image_',num2str(i),'.png'];
imwrite(frame,outputFile);
disp(['image_',num2str(i),' is finished.']);
end
toc;
%205 秒
Part 2. 圆心检测和数据计算
path = "D:\西南交通大学\结构1班\学习\智能建造\智能建造
作业20230624\image\image_1.png"
rgb = imread(path);
imshow(rgb)
d =drawline;
pos = d.Position;
diffPos = diff(pos);
diameter = hypot(diffPos(1),diffPos(2))
gray_image = rgb2gray(rgb);
imshow(gray_image)
h =viscircles(centers,radii);
average_radii=mean(radii);
resolution=20./average_radii;
Part 3. 计算位移并绘制时程曲线
%% 1读入视频文件
video_path = "D:\西南交通大学\结构1班\学习\智能建造\智能
建造作业20230624\video.avi"
video = VideoReader(video_path);
% 获取视频帧数和帧率
frame_num = video.NumberOfFrames;
frame_rate = video.FrameRate;
% 分别获取每一帧的灰度图像并计算其亮度中心
centroids1 = zeros(frame_num, 2);
centroids2 = zeros(frame_num, 2);%定义圆心
centroids3 = zeros(frame_num, 2);
centroids4 = zeros(frame_num, 2);
centroids5 = zeros(frame_num, 2);
centroids6 = zeros(frame_num, 2);
Radii1 = zeros(frame_num, 1);%定义半径
Radii2 = zeros(frame_num, 1);
Radii3 = zeros(frame_num, 1);
Radii4 = zeros(frame_num, 1);
Radii5 = zeros(frame_num, 1);
Radii6 = zeros(frame_num, 1);
for i = 1:frame_num
frame = read(video, i);%读取视频每一帧
gray_frame = rgb2gray(frame);%rbg3 通道图转灰度图
gray1 通道
% 使用Hough变换检测圆形目标
[centers,radii,
~]
20],'ObjectPolarity','dark', ...
%背景相当亮,大多数塑料片比背景暗。但是,默认情况下,
imfindcircles 会找到比背景亮的圆形目标。
%因此,在 imfindcircles 中将参数 'ObjectPolarity' 设置为
'dark' 以搜索较暗的圆。
%imfindcircles 有参数 'Sensitivity',可用于控制此内部阈值,
从而控制算法的敏感度。
%较高的 'Sensitivity' 值会将检测阈值设置得较低,并导致检
测到更多圆。
%[centers,radii]
30],'ObjectPolarity','dark')
=
imfindcircles(rgb,[10
%'Sensitivity' 是介于 0 和 1 之间的数字,默认设置为 0.85。
将 'Sensitivity' 提高到 0.9。
%
[centers,radii]
20],'ObjectPolarity','dark', ...
%
'Sensitivity',0.85)
%imshow(rgb)
%h=viscircles(centers,radii);
[centers,radii]
=
20],'ObjectPolarity','dark', ...
=
imfindcircles(rgb,[10
imfindcircles(rgb,[10
= imfindcircles(gray_frame,[10
'Sensitivity',0.85,'Method','twostage');
centers = sortrows(centers);
centers_radii=[centers,radii];
centers_radii = sortrows(centers_radii);
% 如果检测到了圆形目标,则将其视为亮度中心
if ~isempty(centers)
centroids1(i,:) = centers(1,:);
centroids2(i,:) = centers(2,:);
centroids3(i,:) = centers(3,:);
centroids4(i,:) = centers(4,:);
centroids5(i,:) = centers(5,:);
centroids6(i,:) = centers(6,:);
Radii1(i,:) = centers_radii(1,3);
Radii2(i,:) = centers_radii(2,3);
Radii3(i,:) = centers_radii(3,3);
Radii4(i,:) = centers_radii(4,3);
Radii5(i,:) =centers_radii(5,3);
Radii6(i,:) = centers_radii(6,3);
end
end
%求分辨率
average_Radii=zeros(6,1)
average_Radii(1,1) = mean(Radii1);
average_Radii(2,1) = mean(Radii2);
average_Radii(3,1) = mean(Radii3);
average_Radii(4,1) = mean(Radii4);
average_Radii(5,1) = mean(Radii5);
average_Radii(6,1) = mean(Radii6);
all_aver_radii = mean(average_Radii);
resolution=20./all_aver_radii;%得到分辨率
%像素矩阵转换为位移矩阵
centroids1=resolution.*centroids1;
centroids2=resolution.*centroids2;
centroids3=resolution.*centroids3;
centroids4=resolution.*centroids4;
centroids5=resolution.*centroids5;
centroids6=resolution.*centroids6;
% 时间向量
time = (0:(frame_num-1))/frame_rate;
%% 2.1计算位移时程曲线ROI-1
displacements1 = zeros(frame_num, 1);%定义所占空间
x_displacements1 = zeros(frame_num, 1);
y_displacements1 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements1(i) = centroids1(i,1)-centroids1(1,1);
y_displacements1(i) = centroids1(i,2)-centroids1(1,2);
displacements1(i) = sqrt((centroids1(i,1)-centroids1(1,1))^2
+(centroids1(i,2)-centroids1(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements1','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements1,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement1(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements1']},'FontSize',15);
title(['x_displacements1 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
plot(time, y_displacements1,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement1(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements1']},'FontSize',15);
title(['y_displacements1 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements1,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement1(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%ax.XLim = [0 6];% 设置横坐标轴的区间
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax. TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements1']},'FontSize',15);
title(['displacements1 ']);
%% 2.2计算位移时程曲线ROI-2
displacements2 = zeros(frame_num, 1);
x_displacements2 = zeros(frame_num, 1);
y_displacements2 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements2(i) = centroids2(i,1)-centroids2(1,1);
y_displacements2(i) = centroids2(i,2)-centroids2(1,2);
displacements2(i) = sqrt((centroids2(i,1)-centroids2(1,1))^2
+(centroids2(i,2)-centroids2(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements2','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements2,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement2(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements2']},'FontSize',15);
title(['x_displacements2 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
plot(time, y_displacements2,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement2(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements2']},'FontSize',15);
title(['y_displacements2']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements2,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement1(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
title(['x_displacements3 ']);
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements2']},'FontSize',15);
title(['displacements2 ']);
%% 2.3计算位移时程曲线ROI-3
displacements3 = zeros(frame_num, 1);
x_displacements3 = zeros(frame_num, 1);
y_displacements3 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements3(i) = centroids3(i,1)-centroids3(1,1);
y_displacements3(i) = centroids3(i,2)-centroids3(1,2);
displacements3(i) = sqrt((centroids3(i,1)-centroids3(1,1))^2
+(centroids3(i,2)-centroids3(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements3','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements3,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement3(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements3']},'FontSize',15);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
plot(time, y_displacements3,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement3(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements3']},'FontSize',15);
title(['y_displacements3']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements3,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement3(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
plot(time, y_displacements4,'o-m','LineWidth',2)
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements3']},'FontSize',15);
title(['displacements3 ']);
%% 2.4计算位移时程曲线ROI-4
displacements4 = zeros(frame_num, 1);
x_displacements4 = zeros(frame_num, 1);
y_displacements4 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements4(i) = centroids4(i,1)-centroids4(1,1);
y_displacements4(i) = centroids4(i,2)-centroids4(1,2);
displacements4(i) = sqrt((centroids4(i,1)-centroids4(1,1))^2
+(centroids4(i,2)-centroids4(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements4','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements4,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement4(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements4']},'FontSize',15);
title(['x_displacements4 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement4(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements4']},'FontSize',15);
title(['y_displacements4']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements4,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement4(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements4']},'FontSize',15);
title(['displacements4 ']);
%% 2.5计算位移时程曲线ROI-5
displacements5 = zeros(frame_num, 1);
x_displacements5 = zeros(frame_num, 1);
y_displacements5 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements5(i) = centroids5(i,1)-centroids5(1,1);
y_displacements5(i) = centroids5(i,2)-centroids5(1,2);
displacements5(i) = sqrt((centroids5(i,1)-centroids5(1,1))^2
+(centroids5(i,2)-centroids5(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements5','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements5,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement5(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements5']},'FontSize',15);
title(['x_displacements5 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
plot(time, y_displacements5,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
ylabel('y_Displacement5(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements5']},'FontSize',15);
title(['y_displacements5']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements5,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement5(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements5']},'FontSize',15);
title(['displacements5 ']);
xlabel('t(s)','FontName','Times New Roman')
%% 2.6计算位移时程曲线ROI-6
r_max) ;
displacements6 = zeros(frame_num, 1);
x_displacements6 = zeros(frame_num, 1);
y_displacements6 = zeros(frame_num, 1);
for i = 2:frame_num
x_displacements6(i) = centroids6(i,1)-centroids6(1,1);
y_displacements6(i) = centroids6(i,2)-centroids6(1,2);
displacements6(i) = sqrt((centroids6(i,1)-centroids6(1,1))^2
+(centroids6(i,2)-centroids6(1,2))^2);
end
% 将位移时程曲线转换为时间-位移格式并绘制曲线
%第二步:开始绘制图
%创建一个指定名称(Name)背景色(color)属性的图窗
figure('Name','x_displacements6','color','w');
%绘制3条曲线并设置曲线宽度,曲线线型,曲线数据标记
符号
subplot(2,2,1)
plot(time, x_displacements6,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('x_Displacement6(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax =gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['x_displacements6']},'FontSize',15);
title(['x_displacements6 ']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,2)
plot(time, y_displacements6,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement6(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['y_displacements6']},'FontSize',15);
title(['y_displacements6']);
%%------------------------------------------------------------------------------------------------
subplot(2,2,[3,4])
plot(time, displacements6,'o-m','LineWidth',2)
%设置图的横坐标名称以及相应字体用TimesNewRoman字
体
xlabel('t(s)','FontName','Times New Roman')
ylabel('Displacement6(mm)','FontName','Times New Roman')
grid on;
%设置横坐标间隔长度,设置图表内部网格线为虚线,线粗
为1.
%set(gca,'xtick',length_1bar_min:(length_x/element):length_1ba
r_max) ;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
%%fp. LineWidth = 2;
ax = gca;
%current axes 通过上述语法,"gca"获取到目前的坐标系的
所有属性,再返还给"ax"。
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
%ax.TickLength = [0.02 0.02]; % 设置刻度线的长度
%ax.XLim = [0 6];% 设置横坐标轴的区间
%ax.YLim = [-0.001645-0.000432];% 设置纵坐标轴的区间
%设置图表的名称以及字体大小和格式
%ax.TickLabelInterpreter = 'Times New Roman';
legend({['displacements6']},'FontSize',15);
title(['displacements6 ']);
%% 3.0计算y方向的位移时程曲线ROI-all
figure('Name','all_y_displacements','color','w');
subplot(2,3,1)
plot(time, y_displacements1,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
'out'改成 'in',将刻度线改向朝内)
ylabel('y_Displacement1(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements1']},'FontSize',15);
title(['y_displacements1 ']);
subplot(2,3,2)
plot(time, y_displacements2,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement2(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements2']},'FontSize',15);
title(['y_displacements2 ']);
subplot(2,3,3)
plot(time, y_displacements3,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement3(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements3']},'FontSize',15);
title(['y_displacements3 ']);
subplot(2,3,4)
plot(time, y_displacements4,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement4(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements4']},'FontSize',15);
title(['y_displacements4 ']);
subplot(2,3,5)
plot(time, y_displacements5,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement5(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax = gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements5']},'FontSize',15);
title(['y_displacements5 ']);
subplot(2,3,6)
plot(time, y_displacements6,'o-m','LineWidth',2)
xlabel('t(s)','FontName','Times New Roman')
ylabel('y_Displacement6(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
ax = gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
legend({['y_displacements6']},'FontSize',15);
title(['y_displacements6 ']);
Part 4. 算法评价
%% 绘图标准模板ROI-1
figure('Name','displacements1','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements1,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement1(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax = gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements1']},'FontSize',15);
title(['y-displacements1 ']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements1,'.-b','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s 局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements1,'.-r','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(1),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(1),'.tiff']);
%% 绘图标准模板ROI-2
figure('Name','displacements2','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements2,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement2(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements2']},'FontSize',15);
title(['y-displacements2 ']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements2,'.-b','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements2,'.-r','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(2),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(2),'.tiff']);
%% 绘图标准模板ROI-3
figure('Name','displacements3','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements3,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement3(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax = gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements3']},'FontSize',15);
title(['y-displacements3 ']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements3,'.-b','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s 局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements3,'.-r','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(3),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(3),'.tiff']);
%% 绘图标准模板ROI-4
figure('Name','displacements4','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements4,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement4(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements4']},'FontSize',15);
title(['y-displacements4']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements4,'.-b','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements4,'.-r','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(4),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(4),'.tiff']);
%% 绘图标准模板ROI-5
figure('Name','displacements5','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements5,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement5(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax = gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements5']},'FontSize',15);
title(['y-displacements5']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements5,'.-b','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s 局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements5,'.-r','LineWidth',0.7);
ax =gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(5),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(5),'.tiff']);
%% 绘图标准模板ROI-6
figure('Name','displacements6','color','w');
%在plot, scatter, surf 等前面加上
figure('units','normalized','outerposition',[0 0 1 1]);
plot(time, y_displacements6,'.-m','LineWidth',1.5)
%set(gcf, 'unit', 'centimeters', 'position', [10 10 10 10]);
%set(gcf, 'Position', [100 100 260 220]);
xlabel('t(s)','FontName','Times New Roman')
ylabel('y-Displacement6(mm)','FontName','Times New Roman')
grid on;
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',0.2);
ax =gca;
ax. FontSize = 14;% 调整坐标系的数字标度的字体大小
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
ax.XLim = [0 max(time)];% 设置横坐标轴的区间
ax.YLim = [-4 4];% 设置纵坐标轴的区间
legend({['y-displacements6']},'FontSize',15);
title(['y-displacements6']);
%生成0.1s局部放大图
axes('Position',[0.50,0.65,0.2,0.2]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements6,'.-b','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.1]); % 设置坐标轴范围
ylim([-4,4]);
%生成0.02s局部放大图
axes('Position',[0.50,0.20,0.2,0.15]); % 生成子图
下 宽窄
左右 上
%分别表示放大图的 [ 水平位置,垂直位置,水平大小(长),
竖直大小(宽)]
plot(time, y_displacements6,'.-r','LineWidth',0.7);
ax = gca;
ax. FontSize = 12;% 调整坐标系的数字标度的字体大小
ax. LineWidth = 2;% 调整图表的外框线粗
ax.TickDir = 'in';% 设置刻度线朝向图表的外部(当然可以将
'out'改成 'in',将刻度线改向朝内)
ax. FontName ='Times New Roman';%设置图标(图名)字体类
型,TimesNew Roman 只对英文和数字有效。
xlim([0,0.03]); % 设置坐标轴范围
ylim([-2,2]);
saveas(gcf,['./','block_all_ydis',num2str(6),'.emf']);
saveas(gcf,['./','block_all_ydis',num2str(6),'.tiff']);
把这段matlab代码用python重构
最新发布