今天在练习一个文档识别的小项目时,运行后一直提示报错,可是我还不知道问题出在哪里,源代码如下:
CNts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
CNts = sorted(CNts, key=cv2.contourArea, reverse=True)[:5]
报错内容如下:
Traceback (most recent call last):
File "D:\pycharm_prj\wenzishibie\scan.py", line 85, in <module>
CNts = sorted(CNts, key=cv2.contourArea, reverse=True)[:5]
cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'contourArea'
> Overload resolution failed:
> - contour is not a numerical tuple
> - Expected Ptr<cv::UMat> for argument 'contour'
可是错误并不在报错所提示的那一行,而是上面的findContours()函数,新版本中这个函数要有两个返回值(以前好像是有三个),猛然反应过来以后,加上另一个返回值如下:
CNts, hierarchy = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
CNts = sorted(CNts, key=cv2.contourArea, reverse=True)[:5]
这下就没有问题啦~文章来源:https://www.toymoban.com/news/detail-531760.html
因为之前也总是会忘记,导致老是报错,所以这里就想跟自己还有其他小伙伴提个醒,如果出现这种问题,不妨先检查一下函数的参数个数有没有弄对。文章来源地址https://www.toymoban.com/news/detail-531760.html
到了这里,关于OpenCV学习笔记之Overload报错的处理(仅供参考)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!