代码如下:
import cv2
import numpy as np
# 读取原始图像
original_image = cv2.imread('img.png')
# 定义一组轮廓点(这里只是示例,你需要根据实际情况替换)
points = np.array([[50, 100], [100, 200], [200, 150], [200, 50], [160, 168]], dtype=np.int32)
# 创建与原始图像大小相同的全黑图像作为掩码
mask = np.zeros(original_image.shape[:2], dtype=np.uint8)
# 在掩码上绘制填充的多边形表示要抠取的区域
cv2.fillPoly(mask, [points], 255)
# 使用掩码抠取图像
result = cv2.bitwise_and(original_image, original_image, mask=mask)
cv2.imshow('Original Image', original_image)
cv2.imshow('Mask', mask)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()