opencv Python 如何提取已知坐标围成的区域
时间: 2024-02-21 16:57:22 浏览: 110
要提取已知坐标围成的区域,可以使用OpenCV中的mask(掩膜)来实现。具体操作步骤如下:
1. 创建一个空白的掩膜,大小与原图像相同。
2. 使用fillPoly()方法在掩膜上绘制多边形。
3. 使用bitwise_and()方法将原图像和掩膜进行按位与操作,提取出对应区域。
例如,下面的代码可以提取出已知坐标围成的区域:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('test.jpg')
# 创建掩膜
mask = np.zeros(img.shape[:2], np.uint8)
# 定义多边形顶点坐标
pts = np.array([[100, 100], [300, 100], [300, 300], [100, 300]], np.int32)
# 在掩膜上绘制多边形
cv2.fillPoly(mask, [pts], (255, 255, 255))
# 将原图像和掩膜进行按位与操作,提取出对应区域
res = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Mask', mask)
cv2.imshow('Result', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先加载了一张测试图像。然后,创建了一个空白的掩膜,并定义了一个多边形的顶点坐标。接着,使用fillPoly()方法在掩膜上绘制了多边形。最后,使用bitwise_and()方法将原图像和掩膜进行按位与操作,提取出对应区域。最后,我们可以使用imshow()方法显示结果。
阅读全文
相关推荐















