(-215:Assertion failed) count >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::arcLength'
时间: 2024-06-14 20:07:41
浏览: 205
这个错误通常是由于输入数据的问题引起的。在OpenCV中,当使用`cv::arcLength`函数计算轮廓的弧长时,会出现`(-215:Assertion failed) count >= 0 && (depth == CV_32F || depth == CV_32S)`的错误。
这个错误的原因可能有以下几种情况:
1. 输入的轮廓数量小于0。
2. 输入的轮廓深度不是`CV_32F`或`CV_32S`。
为了解决这个问题,你可以检查以下几点:
1. 确保你的轮廓数量大于等于0。
2. 确保你的轮廓深度是`CV_32F`或`CV_32S`。
如果你使用的是OpenCV 4.0版本,你可以尝试以下代码来找到轮廓并按面积排序:
```python
cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[0]
cnts = sorted(cnts, key=cv2.contourArea, reverse=True)[:5]
这段代码会找到图像中的轮廓,并按照轮廓的面积进行排序,然后选择前5个面积最大的轮廓。
相关问题
-215:Assertion failed) total >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::isContourConvex'
这个错误通常是由于参数传递不正确导致的。在OpenCV中,cv::isContourConvex函数用于检测一个轮廓是否是凸的。
错误信息中的断言失败说明了两个条件:
1. total >= 0:这表示轮廓中的点的总数必须大于等于0。
2. depth == CV_32F || depth == CV_32S:这表示轮廓的深度必须为CV_32F(32位浮点