python opencv cv2.approxpolyDp 怎么使用
时间: 2023-03-13 14:02:18 浏览: 134
要使用cv2.approxPolyDP函数,你需要传入一个带有点的数组,以及一个精度参数,它会返回一个点数组,这些点拟合出了输入点的近似形状。例如:import cv2import numpy as np# Create an array with the coordinates of the points# that you want to approximate.pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)# Reshape the arraypts = pts.reshape(-1, 1, 2)# Create another array with the values of accuracy# that you want to use for the approximation.eps = 0.1# Apply the approximationresult = cv2.approxPolyDP(pts, eps, True)# Print the resultprint (result)
相关问题
python opencv 通过approx = cv2.approxPolyDP(outer_contours[max_index], epsilon, True)得到approx 如何将approx的点一一画出
要将`approx`的点一一画出来,可以使用Python的OpenCV库进行绘制。具体实现步骤如下:
1. 导入OpenCV库
```python
import cv2
import numpy as np
```
2. 准备绘图所需数据
首先,需要准备一张黑色的画布,并在其中绘制出`approx`所代表的多边形。具体实现步骤如下:
```python
img = np.zeros((512, 512, 3), np.uint8) # 创建一张512x512大小的黑色画布
points = approx.reshape((-1, 1, 2)) # 将多边形的点坐标转换成OpenCV可以识别的格式
cv2.polylines(img, [points], True, (0, 255, 0), thickness=2) # 绘制多边形
```
`cv2.polylines`函数用于绘制多边形,其参数解释如下:
- `img`: 绘制图像,即上述创建的黑色画布。
- `points`: 多边形的点坐标,需要先将`approx`的坐标格式转换成OpenCV可以识别的格式。
- `True`: 表示绘制封闭的多边形。
- `(0, 255, 0)`: 绘制多边形的颜色,这里使用绿色。
- `thickness=2`: 绘制多边形的线条粗细,默认值为1。
3. 显示绘制结果
```python
cv2.imshow('image', img) # 显示绘制结果
cv2.waitKey(0) # 等待按下任意键
cv2.destroyAllWindows() # 关闭所有窗口
```
运行上述代码,即可在窗口中显示绘制结果。
cv2.approxPolyDP
cv2.approxPolyDP是OpenCV中的一个函数,用于对轮廓进行多边形逼近。该函数采用的是Douglas-Peucker算法,可以将轮廓中的复杂曲线逼近为简单的多边形。函数的语法如下:
```python
approx = cv2.approxPolyDP(curve, epsilon, closed)
```
其中,参数curve是输入的轮廓,epsilon是逼近精度,即原始轮廓与逼近后多边形之间的最大距离,closed指定是否将多边形封闭。
函数的返回值approx是逼近后得到的多边形,它是一个包含多个顶点坐标的numpy数组。
阅读全文