语法:
polylines(img, 点集, 是否闭环, 颜色, ...)
实战代码:
import cv2
import numpy as np
import pandas as pd
img = np.ones((480, 640, 3), np.uint8)
# 画多边形
pts = np.array([(300, 10), (150, 100), (450, 100)], np.int32)
cv2.polylines(img, [pts], True, (0, 0, 255))
cv2.imshow('draw2', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果:
语法:
fillPoly(img, 点集, 颜色)
实战代码:
import cv2
import numpy as np
import pandas as pd
img = np.ones((480, 640, 3), np.uint8)
# 画多边形
pts = np.array([(300, 10), (150, 100), (450, 100)], np.int32)
# cv2.polylines(img, [pts], True, (0, 0, 255))
# 填充多边形
cv2.fillPoly(img, [pts], (255, 0, 0))
cv2.imshow('draw2', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果:
这里代码中, 可以如下写:
# cv2.polylines(img, [pts], True, (0, 0, 255))
# 填充多边形
cv2.fillPoly(img, [pts], (255, 0, 0))
也可以如下写:
cv2.polylines(img, [pts], True, (0, 0, 255))
# 填充多边形
cv2.fillPoly(img, [pts], (255, 0, 0))
两者的区别还有待考究, 应该是有了点集之后, 如果点集一样, 填充和绘制也就直接覆盖了, 所以也就是两个代码效果一致的原因吧.
这里看谁的代码更靠下, 谁的展示优先级就更高.
语法:
putText(img, 字符串, 起始点, 字体, 字号, ...)
实战代码:
import cv2
import numpy as np
import pandas as pd
img = np.zeros((480, 640, 3), np.uint8)
# 绘制文本
cv2.putText(img, 'Hello world', (40, 400), cv2.FONT_HERSHEY_PLAIN, 4, (100, 80, 200))
cv2.imshow('draw_text', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
效果: