opencv不规则roi提取
时间: 2023-08-26 09:07:16 浏览: 81
要提取不规则ROI,您可以使用OpenCV中的mask操作。以下是一些步骤:
1. 创建一个与图像相同大小的黑色图像。
```
mask = np.zeros_like(img)
```
2. 使用OpenCV的绘图函数绘制ROI的形状,例如多边形。
```
pts = np.array([[10,50],[20,30],[70,20],[50,10]], np.int32)
cv2.fillPoly(mask,[pts],(255,255,255))
```
在这个例子中,我们创建了一个由四个点组成的多边形。
3. 将掩码应用于原始图像。
```
roi = cv2.bitwise_and(img, mask)
```
这将只保留原始图像中与掩码重叠的区域。
完整的代码:
```
import cv2
import numpy as np
# Load image
img = cv2.imread('image.jpg')
# Create mask
mask = np.zeros_like(img)
# Define polygonal ROI
pts = np.array([[10,50],[20,30],[70,20],[50,10]], np.int32)
cv2.fillPoly(mask,[pts],(255,255,255))
# Apply mask
roi = cv2.bitwise_and(img, mask)
# Show result
cv2.imshow('ROI', roi)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
您可以根据需要调整多边形的顶点,以适应您的ROI形状。
阅读全文