matlab中如何计算已知曲线的长度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中如何计算已知曲线的长度?相关的知识,希望对你有一定的参考价值。

用matab的积分做。
由于这是曲线积分,根据大学中教材高等数学第二版第十一章的定义
>>
y
=
diff(0.2*cos(pi*x));
y
=
-(pi*sin(pi*x))/5
>>
quad(@(x)(-pi/5)*sin(pi*x),0,2)
ans
=
0
参考技术A 举个例子,就是分别计算没个线段的长度,然后再加起来:
x
=
[
0
1
2
];
y
=
[
0
0
1
];
len
=
sum(
sqrt(
diff(
x
).^2
+
diff(
y
).^2
)
)
计算结果:
len
=
2.4142

matlab怎么计算线段的长度

就是这个图,怎么求图中那把尺子的长度

参考技术A 请问您要求图上的长度(单位:像素)还是实际场景中的长度?
图上长度稍简单一些,我想可以先分割出尺子来,然后用霍夫变换做直线检测以定出直线,进而找到端点,求线段长度的。
如果需要实际场景中的长度,必须要有相机的内外参数才可以。追问

不是实际中的长度,只要能求出一个相对长度就行,是用matlab做么?

追答

我觉得现在关键还是算法吧。请问您有做过图像处理吗?

追问

嗯,目前从事这方面的工作,图像处理的基本操作我都会,分割我也会

追答

嗯嗯 那我上面的思路您觉得怎么样?您之前是怎样的思路?

您之前用什么语言和工具处理图像?

追问

我用过matlab和ENVI,主要是用matlab,我这个是新的问题,没有什么思路,我刚刚找了一些霍夫变换的程序,试了试,效果不是很好.还有就是怎么通过霍夫变换找到端点呀,我主要就是要找端点

追答

霍夫变换不能找端点。我的想法是,找到偏离直线一定阈值范围内所有尺子上的像素点,找到其中纵坐标最大最小的两个点作为端点。

追问

你的这个想法能用编程帮我实现么?

追答

能,但是我不会自己写的,既然您是做相关工作的,自己动手写一下代码也是应该的吧。

追问

你看看这是我裁切,hough处理过的图片,主要是后面那个步骤我不太会

追答

我觉得主要是分割那一步的准确性,如果分割好的话,可以用提取骨架的方法来减少噪声干扰。
后面的工作也不难:霍夫变换的原理您应该是知道的吧,Hough变换拿到直线参数,那就可以取所有分割出的点的坐标来,代入直线方程来检验偏离程度。取偏离较小(阈值自己设)的点,从中找纵坐标最大/小的。

本回答被提问者采纳

以上是关于matlab中如何计算已知曲线的长度?的主要内容,如果未能解决你的问题,请参考以下文章

matlab 如何计算曲线长度

如何计算三次贝塞尔曲线的长度

matlab中如何计算一条线的长度

matlab求曲线长度如何编程

matlab 符号计算 求空间曲线长度

MATlAB中计算函数曲线长度的函数