You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cv2.minAreaRect返回旋转矩形中心角度偏移90度问题咨询

问题根因

你遇到的cv2.minAreaRect结果偏移90度的问题,核心是坐标顺序不匹配:

  • np.where(thresh > 0)返回的结果顺序是(行索引, 列索引),对应图像坐标系的(y, x)
  • cv2.minAreaRect要求输入的点集必须遵循OpenCV默认坐标规则,顺序为(x, y)
    直接将np.where的结果列堆叠,相当于互换了x和y坐标,自然会出现90度偏移。部分对称样图(比如你提到的“thunder”图样)互换xy后结果差异不明显,才会出现部分场景运行正常的假象。
修复代码

仅需调整坐标堆叠的顺序即可,将原代码中:

coords = np.column_stack(np.where(thresh > 0))

修改为:

# 反转坐标顺序,从(y, x)转为(x, y)匹配OpenCV要求
coords = np.column_stack(np.where(thresh > 0)[::-1])
可选补充:角度规则说明

OpenCV 4.x版本中cv2.minAreaRect返回的角度值范围为[-90, 0),表示矩形宽边与x轴正方向的夹角,如果你需要转换为常规的[0, 180)角度范围,可以结合返回的矩形宽高做补正:

  • 如果宽小于高,将角度加90度即可得到常规的旋转角度值

内容的提问来源于stack exchange,提问作者lorenzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 14:33:03