我可以用点画一条线,但我不知道如何画一条曲线。
这是我的代码:
clc;
clear all;
I = imread('im6f.jpg');
figure,imshow(I);
[x,y] = ginput(2);
然后我使用距离公式得到长度。
我该怎么做曲线?
我可以用点画一条线,但我不知道如何画一条曲线。
这是我的代码:
clc;
clear all;
I = imread('im6f.jpg');
figure,imshow(I);
[x,y] = ginput(2);
然后我使用距离公式得到长度。
我该怎么做曲线?
interp1
用于插值样条曲线怎么样?假设fold = 10
是您想要的分辨率的近似增加。然后,[x, y] = ginput()
没有特定的积分上限。用户指定的点数是n = length(x)
。然后,
t = 1 : (1/fold) : n;
xi = interp1(1 : n, x, t, 'spline');
yi = interp1(1 : n, y, t, 'spline');
plot(xi, yi, 'linewidth', 3);
为您提供以下内容,其中红色斑点标记了我单击的点。您必须按Enter停止收集坐标。
xi
并且yi
是fold
-fold 重采样坐标x
并用作插值方法y
。'spline'
你可以看看这个以获取其他选项。
dx = xi(1 : end-1) - xi(2 : end);
dy = yi(1 : end-1) - yi(2 : end);
d = sum(sqrt(dx.^2 + dy.^2));
d
大致是该样条的长度,计算为所有边的长度之和。在上图所示的情况下,d = 118.97
。