0

我有一个具有任意区域形状的图像(比如对象),假设背景像素被标记为零,而任何对象都有一个唯一的标签(对象 1 的像素被标记为 1,对象 2 像素被标记为 2,... )。现在对于每个对象,我需要找到其像素的最佳椭圆拟合。这需要找到对象的中心、长轴和短轴以及旋转角度。我怎样才能找到这些?

谢谢;

4

2 回答 2

1

由于您似乎使用的是 Matlab,因此您可以简单地使用该regionprops命令,因为您有图像处理工具箱。

它可以提取您需要的所有信息(以及图像区域的更多属性),并且如果基于 PCA 的方法适合您的需求,它将为您执行 PCA。

Doc 在这里,专门寻找'Centroid', 'Orientation','MajorAxisLength''MinorAxisLength'参数。

于 2013-12-14T12:46:37.837 回答
1

主成分分析(PCA)是一种方法。请参阅此处的维基百科

如果你的形状是凸的,质心很容易找到——只是 xy 位置上强度的加权平均值——PCA 会给你长轴和短轴,因此是方向。

一旦你有了中心和轴,你就有了一组覆盖你的形状的椭圆的基础。按比例扩展轴并测试每个像素的输入/输出,您可以找到刚好覆盖您的形状的椭圆。或者,如果您愿意,您可以将每个像素位置投影到主轴和次轴上,并在一次通过中找到粗略的限制,然后在“角落”案例中进行测试。

如果您发布示例图像可能会有所帮助。

于 2013-12-14T09:22:25.543 回答