gpt4 book ai didi

opencv - OpenCV 中 RotatedRect 尺寸相对大小的歧义

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:18 26 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 对图像中某些对象周围获得的旋转矩形的纵横比设置阈值。为了将旋转矩形的纵横比与阈值进行比较,我需要计算旋转矩形的较长尺寸和较短尺寸的比率。

我在这方面感到困惑:OpenCV 中的约定是什么? rotatedRectanlge.size.width 总是小于 rotatedRectangle.size.height 吗?即,旋转矩形的宽度是否总是分配给 OpenCV 中旋转矩形的两个维度中较小的一个?

我尝试运行一些代码来寻找答案。而且,看起来 rotatedRectangle.size.width 实际上是 rotatedRectangle 的较小尺寸。但我仍然希望任何遇到过类似情况的人都能确认一下。

编辑:我正在使用 fitEllipse 来获取旋转的矩形,我的 OpenCV 版本是 2.4.1。

请帮忙!

最佳答案

旋转矩形本身没有约定,如the documentation

The class represents rotated (i.e. not up-right) rectangles on a plane. Each rectangle is specified by the center point (mass center), length of each side (represented by cv::Size2f structure) and the rotation angle in degrees.

但是,您没有指定创建旋转矩形的函数或操作 - 例如,如果您使用了 fitEllipse,则可能是算法的一些内部细节更喜欢使用较大(或较小)的尺寸作为宽度(或高度)。

也许您可以使用更多信息评论或编辑您的问题。就目前而言,如果您想要较长尺寸与较短尺寸的比率,则需要先具体测试哪个较长。

编辑

看了OpenCV源码,fitEllipse函数包含如下代码

if( box.size.width > box.size.height )
{
float tmp;
CV_SWAP( box.size.width, box.size.height, tmp );
box.angle = (float)(90 + rp[4]*180/CV_PI);
}

所以,至少对于这个实现,似乎宽度总是被当作较短的维度。但是,我不会依赖于在未来的实现中保持真实。

关于opencv - OpenCV 中 RotatedRect 尺寸相对大小的歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com