opencv画圆没转换成整数的各种报错,cv2.error: OpenCV(4.5.4-dev) :-1: error: (-5:Bad argument) in function ‘circle‘

出现背景:

拟合圆,得到拟合的圆心和半径后,使用opencv画圆时出现报错

报错信息:

  • 圆心半径画圆时,圆心坐标没转换成int
cv2.circle(im,(x,y),r,(0,0,255),2)
cv2.error: OpenCV(4.5.4-dev) :-1: error: (-5:Bad argument) in function 'circle'
> Overload resolution failed:
>  - Can't parse 'center'. Sequence item with index 0 has a wrong type
>  - Can't parse 'center'. Sequence item with index 0 has a wrong type
  • 圆心半径画圆时,半径没转换成int
cv2.circle(im,(x_int, y_int),r,(0,0,255),2)
cv2.error: OpenCV(4.5.4-dev) :-1: error: (-5:Bad argument) in function 'circle'
> Overload resolution failed:
>  - Argument 'radius' is required to be an integer
>  - Argument 'radius' is required to be an integer
  • 画圆心时,圆心坐标没转换成int
cv2.circle(im,(x,y),2,(0,255,0),3)
cv2.error: OpenCV(4.5.4-dev) :-1: error: (-5:Bad argument) in function 'circle'
> Overload resolution failed:
>  - Can't parse 'center'. Sequence item with index 0 has a wrong type
>  - Can't parse 'center'. Sequence item with index 0 has a wrong type
  • 在图上写文字时,定位坐标没转换成int
cv2.putText(im,  '(' + str(round(x))+',' + str(round(y)) + '),r:' + str(round(r)), (0,y) , cv2.FONT_HERSHEY_SIMPLEX,1,(0,255,0),1)
cv2.error: OpenCV(4.5.4-dev) :-1: error: (-5:Bad argument) in function 'putText'
> Overload resolution failed:
>  - Can't parse 'org'. Sequence item with index 1 has a wrong type
>  - Can't parse 'org'. Sequence item with index 1 has a wrong type

总结:

  • 在图片上画图时要保证相关坐标信息转换成像素对应的int整数,包括半径这样的参数
### 回答1: 这是OpenCV错误报告,代码执行时遇到了assertion(断言)错误,在图像编解码模块的loadsave.cpp文件的第799行,具体错误为“(!_img.empty())”,即图像为空。常见原因是读入的图像格式有误或路径错误,需要检查代码实现并重新尝试。 ### 回答2: 这个错误是在使用OpenCV库中的imwrite()函数时出现的。该函数的作用是将图像写入磁盘。通常这种错误是由于要保存的图像为空(_img.empty())而导致的。具体原因可能有以下几种: 1.图片路径错误:检查一下你是否使用了正确的路径。确保保存的图片的路径是正确的,并且路径中不存在任何错误拼写或符号。 2.图像尺寸错误:如果你要将一个空的图像文件保存到磁盘上,就会导致该错误。这通常会在试图保存图像尺寸为0x0或者负数时出现。 3.数据读写错误:请确保你的代码不会在写入图像数据之前就结束了。确保在使用imwrite之前,读取了图像的所有数据,并且可以成功加载图像。 4.库版本和编译方式不匹配:检查你使用的OpenCV库文件是否和你的代码编译器互相兼容。如果不匹配,你可能需要升级库文件或者更改编译器。 总之,这个错误可能会在使用imwrite函数时出现,如果你仔细检查上述原因,就能够解决这个问题。 ### 回答3: 这个错误是在使用OpenCV的图像处理模块中的imwrite函数时出现的。 这个错误的原因通常是由于传递给imwrite函数的图像是空的。也就是说,无法将空图像保存到文件中。 解决这个问题的方法是确保传递给imwrite函数的图像是有效的,不为空。检查代码中是否存在未定义的行为,例如在图像处理过程中使用无效的图像指针或从未初始化的变量等。 另一个常见的原因是文件路径不存在或权限不足。在尝试保存图像之前,请确保您有适当的文件权限,并使用正确的文件名和路径。 如果您的代码中有明显的错误,并且图像也是有效的,您可以尝试更新OpenCV库或重新安装OpenCV库来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿航626

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值