在做文档识别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。