在做文档识别OCR时遇到问题error: (-215:Assertion failed) in function 'contourArea'解决方法

在做文档识别OCR时遇到问题

error: OpenCV(4.2.0) /io/opencv/modules/imgproc/src/shapedescr.cpp:315: error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function ‘contourArea’。如下图
在这里插入图片描述
那么该如何解决呢?下面说一下方法:
把下面代码改动

cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[1]

最后面的1改为0。

cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[0]

或者改为

cnts, _ = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

也可以。

再次运行,就不会报错。

原因:

在cv2.findContour()里只返回两个值: contours, hierachy,而我们要的是contours,所以后面应该是0而不是1。


版权声明:本文为weixin_42042056原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。