Контур — это просто кривая, соединяющая все непрерывные точки, поэтому для создания собственного контура вы можете создать np.array()
с вашими (x,y)
баллами в по часовой стрелке
points = np.array([[25,25], [70,10], [150,50], [250,250], [100,350]])
Вот и все!
Существует два метода рисования контура на изображении в зависимости от того, что вам нужно:
Контурный контур
Если вам нужен только контур контура, используйте контуры" rel="noreferrer">cv2.drawContours()
cv2.drawContours(image,[points],0,(0,0,0),2)
![](https://i.stack.imgur.com/IRcrV.png)
Заполненный контур
Чтобы получить заполненный контур, вы можете использовать cv2.fillPoly()
или cv2.drawContours()
с thickness=-1
cv2.fillPoly(image, [points], [0,0,0]) # OR
# cv2.drawContours(image,[points],0,(0,0,0),-1)
![](https://i.stack.imgur.com/xKaSX.png)
Полный пример кода для полноты
import cv2
import numpy as np
# Create blank white image
image = np.ones((400,400), dtype=np.uint8) * 255
# List of (x,y) points in clockwise order
points = np.array([[25,25], [70,10], [150,50], [250,250], [100,350]])
# Draw points onto image
cv2.drawContours(image,[points],0,(0,0,0),2)
# Fill points onto image
# cv2.fillPoly(image, [points], [0,0,0])
cv2.imshow('image', image)
cv2.waitKey()
person
nathancy
schedule
05.10.2019