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

Python3.8调用cv2.circle报类型错误 3.9环境运行正常

故障原因

报错指向cv2.circle的center圆心参数类型不匹配:OpenCV 4.5.5版本在Python 3.8环境下严格要求圆心坐标的两个值必须为整数类型,不会自动对浮点数、numpy浮点类数值做隐式整数转换。
你之前Python 3.9的Anaconda环境中安装的OpenCV版本类型校验更宽松,支持自动把浮点类坐标转成合法整数参数,所以程序可以正常运行。两个环境的OpenCV版本/构建版本不一致,是出现同代码不同运行结果的核心原因。

修复方案

两种方案选择任意一种即可解决问题:

  • 代码层面显式做类型转换:直接修改plot_new.py第221行的报错代码,把圆心坐标的两个值强制转成int类型:
    原报错代码:
cv2.circle(im_with_pairs,tuple(point),10,magenta, thickness = 2)

替换为对应逻辑:

# point为普通列表/元组时用这行
cv2.circle(im_with_pairs, (int(point[0]), int(point[1])), 10, magenta, thickness=2)
# point为numpy数组时用这行写法更简便
# cv2.circle(im_with_pairs, tuple(point.astype(int)), 10, magenta, thickness=2)
  • 环境层面统一OpenCV版本:先在能正常运行的Python 3.9环境中执行pip show opencv-python查询当前安装的OpenCV具体版本号,再到Python 3.8环境中执行pip install opencv-python==查询到的版本号安装完全一致的版本,不需要修改代码即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:24:26