cv2.fillPoly(mask, [np.int32(circle)], 0) TypeError: pts is not a numpy array, neither a scalar
时间: 2024-03-05 15:52:46 浏览: 18
这个错误通常是由于`pts`参数不是正确的`numpy`数组引起的。`cv2.fillPoly()`函数需要的`pts`参数应该是一个`numpy`数组列表,表示要填充的多边形区域。每个多边形应该表示为一个数组,其中每一行都是多边形中的一个点的坐标。
你可以尝试使用以下代码,将`circle`转换为一个数组,再将其传递给`cv2.fillPoly()`函数:
```python
# 填充圆形区域
mask = np.zeros_like(img)
for circle in circles[0]:
circle = np.int32(circle)
pts = cv2.ellipse2Poly((circle[0], circle[1]), (circle[2], circle[2]), 0, 0, 360, 10)
cv2.fillPoly(mask, [pts], 0)
```
在这个代码中,我们首先将`circle`转换为`numpy`整型数组,然后使用`cv2.ellipse2Poly()`函数计算圆形的多边形表示形式。最后,我们将多边形传递给`cv2.fillPoly()`函数。
希望这可以解决你的问题!
相关问题
cv2.fillpoly
cv2.fillPoly() 是 OpenCV 库中的一个函数,用于在图像上填充多边形。它可以用来在图像上绘制任意形状,如矩形、圆形、三角形等。
该函数的语法如下:
```
cv2.fillPoly(img, pts, color[, lineType[, shift[, offset]]])
```
其中:
- img:要填充的图像。
- pts:要填充的多边形的顶点坐标,是一个列表或数组。
- color:填充的颜色,可以是一个标量值(灰度图像)或 RGB 值(彩色图像)。
- lineType:线条类型,默认为 8 连通。
- shift:坐标点的小数位数。
- offset:坐标点的偏移量。
下面是一个简单的例子,演示如何在图像上填充一个三角形:
```python
import cv2
import numpy as np
# 创建一个空白图像
img = np.zeros((512, 512, 3), dtype=np.uint8)
# 定义三角形的顶点坐标
pts = np.array([[100, 100], [300, 100], [200, 300]])
# 填充三角形
cv2.fillPoly(img, [pts], (0, 255, 0))
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行结果如下图所示:
![filled triangle](https://img-blog.csdn.net/20180321132113540)
cv2.fillPoly
cv2.fillPoly函数是一个用于填充任意形状图形的函数。它可以用来绘制多边形,也可以一次填充多个图形。使用该函数的关键是提供原图画板和多边形的顶点坐标以及填充的颜色。例如,在给定一个原图画板img和一个多边形的顶点坐标pts的情况下,可以使用cv2.fillPoly(img, [pts], color=(0, 0, 255))来填充指定的多边形。需要注意的是,填充的颜色可以是一个三元组,用于表示RGB颜色值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [cv2.polylines、cv2.fillPoly 和 多边形绘制分割结果Python函数(一)](https://blog.csdn.net/HaoZiHuang/article/details/127026323)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *2* [cv2.fillConvexPoly()与cv2.fillPoly()填充多边形](https://blog.csdn.net/u012135425/article/details/84983265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]