
在Mac系统使用Visual Studio和OpenCV进行图像处理时,cv.circle()函数可能出现类型错误,导致绘图失败。本文分析并解决此问题。
错误信息通常为:“opencv(4.5.2) :-1: error: (-5:bad argument) in function ‘circle’ overload resolution failed: – can’t parse ‘center’. sequence item with index 0 has a wrong type”。 这表明cv.circle()函数无法解析传入的圆心坐标。
问题原因在于cv.circle()函数期望接收整数类型的坐标元组(x, y),而传入的坐标数据类型不符。
例如,以下代码片段:
pts1 = np.float32([[657,122],[738,235],[478,249],[559,362]])cv.circle(img, (pts1[0][0], pts1[0][1]), 5, (0,0,255), cv.filled)
pts1是一个NumPy浮点数组,pts1[0][0]和pts1[0][1]是浮点数,而非整数。
解决方法是将坐标数据转换为整数类型。 修改pts1的定义,使用Python列表存储整数坐标:
pts1 = [[657,122],[738,235],[478,249],[559,362]]
或者,保持pts1为NumPy数组,但在调用cv.circle()函数前,将坐标转换为整数:
pts1 = np.float32([[657,122],[738,235],[478,249],[559,362]])cv.circle(img, (int(pts1[0][0]), int(pts1[0][1])), 5, (0,0,255), cv.filled)
通过以上方法,确保cv.circle()函数接收的是整数类型的坐标,即可解决类型错误,成功绘制圆点。 修改后的代码能够在图像上正确绘制出指定的点。
以上就是Mac系统Visual Studio下OpenCV绘图报错:cv.circle()函数类型错误如何解决?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1357899.html
微信扫一扫
支付宝扫一扫