在MATLAB中计算离散三维表面评定参数Sz、Sds、Ssc、Sdr、Sdq、Std、Sal、Str、Smr、Sxp、Vmp、Vmc
时间: 2023-10-08 12:14:05 浏览: 234
要计算离散三维表面评定参数,需要先用MATLAB计算出表面的高度图,然后根据高度图计算各个参数。以下是各个参数的计算方法:
1. Sz:峰-谷高度
Sz是表面上最高点和最低点之间的距离,用以下公式计算:
Sz = max(h(:)) - min(h(:))
其中h是高度图。
2. Sds:表面直线度
Sds是表面上所有点到最佳拟合平面的最大偏差,用以下公式计算:
Sds = max(abs(d - mean(d)))
其中d是所有点到最佳拟合平面的距离,mean(d)是d的平均值。
3. Ssc:表面曲率
Ssc是表面曲率的平均值,用以下公式计算:
Ssc = mean(sqrt(K1.^2 + K2.^2))
其中K1和K2是高斯曲率和平均曲率。
4. Sdr:表面粗糙度
Sdr是表面上相邻两点高度差的平均值,用以下公式计算:
Sdr = mean(abs(diff(h(:))))
5. Sdq:表面均匀度
Sdq是表面上相邻两点高度差的标准差,用以下公式计算:
Sdq = std(abs(diff(h(:))))
6. Std:表面松弛度
Std是表面上相邻两点间的距离的平均值,用以下公式计算:
Std = mean(sqrt(sum(diff(xyz,1,1).^2,3)))
其中xyz是每个点的坐标。
7. Sal:表面缺陷度
Sal是表面上缺陷的总面积与表面总面积的比值,用以下公式计算:
Sal = sum(h(:) < 0) / numel(h)
其中h(:) < 0 表示高度图中小于0的像素点。
8. Str:表面三维粗糙度
Str是表面上相邻三个点构成的平面的法向量夹角的平均值,用以下公式计算:
Str = mean(acosd(dot(cross(diff(xyz,1,1),diff(xyz,1,2),2),...
cross(diff(xyz,1,3),diff(xyz,1,2),2),2)./(...
sqrt(sum(diff(xyz,1,1).^2,3)).*sqrt(sum(diff(xyz,1,3).^2,3))))))
9. Smr:表面平滑度
Smr是表面上相邻三个点构成的平面的法向量夹角的标准差,用以下公式计算:
Smr = std(acosd(dot(cross(diff(xyz,1,1),diff(xyz,1,2),2),...
cross(diff(xyz,1,3),diff(xyz,1,2),2),2)./(...
sqrt(sum(diff(xyz,1,1).^2,3)).*sqrt(sum(diff(xyz,1,3).^2,3))))))
10. Sxp:表面平面度
Sxp是表面上所有点到最佳拟合平面的平均偏差,用以下公式计算:
Sxp = mean(abs(d))
其中d是所有点到最佳拟合平面的距离。
11. Vmp:体积材料比
Vmp是表面上实际的材料体积与理论材料体积的比值,用以下公式计算:
Vmp = sum(h(:) > 0) / numel(h)
其中h(:) > 0 表示高度图中大于0的像素点。
12. Vmc:体积曲率
Vmc是表面曲率的方差,用以下公式计算:
Vmc = var(sqrt(K1.^2 + K2.^2))
其中K1和K2是高斯曲率和平均曲率。
阅读全文