假设我们在图像中有一个连接组件,如下图所示:图像 http://dl.dropbox.com/u/92688392/ellipse.jpg。
我的问题是如何计算连接组件的边界椭圆(图像中的红色椭圆)。我检查了 MATLAB 函数regionprops,并了解 MATLAB 如何做到这一点。我还注意到 Opencv 具有类似的功能来执行CBlob::GetEllipse()。但是,虽然我了解他们是如何通过阅读代码获得结果的,但其背后的基本理论对我来说仍然不清楚。因此,我想知道是否有一些标准算法可以完成这项工作。谢谢!
编辑:
根据评论,我重新组织了我的问题:在图像时刻维基百科中,最长轴角的计算公式是
但是,在 MATLAB 函数regionprops中,代码如下:
% Calculate orientation.
if (uyy > uxx)
num = uyy - uxx + sqrt((uyy - uxx)^2 + 4*uxy^2);
den = 2*uxy;
else
num = 2*uxy;
den = uxx - uyy + sqrt((uxx - uyy)^2 + 4*uxy^2);
end
此实现与维基百科中的公式不一致。我想知道哪个是正确的。