报错 error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'cv::contourArea'
时间: 2024-01-25 15:03:34 浏览: 381
报如下错误
这个错误通常是由于传递给`cv2.contourArea()`函数的参数不正确引起的。请确保传递给函数的参数是一个有效的轮廓。
在您的代码中,`contour_mask`应该是一个二值图像,而不是标签图像。`labels == label`创建的`contour_mask`实际上是一个布尔值图像,而不是二值图像。因此,在计算轮廓面积之前,您需要将其转换为正确的数据类型。
请尝试使用以下代码进行转换:
```python
contour_mask = np.uint8(labels == label) * 255
```
这将将布尔值图像转换为二值图像,并将其值从True/False转换为255/0。
然后,您可以再次尝试计算轮廓面积。
```python
area = cv2.contourArea(contour_mask)
```
这样应该可以解决报错的问题。
阅读全文