OpenCV学习笔记 - task05

内容导航:

  • 第五章: OpenCV实现图形的绘制-2
    • 画多边形:
    • 填充多边形:
    • 画文本:

第五章: OpenCV实现图形的绘制-2

画多边形:

语法:

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() 

效果:

OpenCV学习笔记 - task05_第1张图片

填充多边形:

语法:

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() 

效果:

OpenCV学习笔记 - task05_第2张图片

这里代码中, 可以如下写:

# 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() 

效果:

OpenCV学习笔记 - task05_第3张图片

你可能感兴趣的:(#,Python学习系列,opencv,学习,计算机视觉)