绘制直线:
cv2.line(img,pt1,pt2,color,thickness=None,lineType=None,shift=None)
- img:绘制图形的图像
- pt1:起始坐标 (x,y)
- pt2: 终点坐标
- color:线的颜色 (B,G,R)
- thickness:线的粗细 默认为 1
- lineType:线的类型 默认为连接
cv2.LINE_AA 为抗锯齿 线会更加平滑
shift参数,就是将坐标的小数点向前移动几位,其实就是缩小倍数。
import cv2
img = cv2.imread("first.jpg",cv2.IMREAD_UNCHANGED)
cv2.line(img,(25,26),(1211,973),(255,0,0),2) # img 、pt1 、pt2 、color 、thickness
cv2.imshow("line",img)
cv2.waitKey()
cv2.destroyAllWindows()
绘制矩形:
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
- img:绘制图形的图像
- pt1: 左上顶点坐标 (x,y)
- pt2: 右下顶点坐标
- color:线的颜色 (B,G,R)
- thickness:线的粗细 默认为 1
- lineType:线的类型 默认为连接
- cv2.LINE_AA 为抗锯齿 线会更加平滑
- shift参数:将坐标的小数点向前移动几位,缩小倍数。
import cv2
img = cv2.imread("first.jpg",cv2.IMREAD_UNCHANGED)
cv2.rectangle(img,(12,23),(234,342),(0,255,0),2)
cv2.imshow("line",img)
cv2.waitKey()
cv2.destroyAllWindows()
绘制文字:
cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
- img:绘制文字的图像
- text:绘制的文本 一般为英文 中文需要特殊处理
- org:绘制起始位置
- fontFace:设置字体
命令 | 方法 |
---|---|
FONT_HERSHEY_SIMPLEX | 正常大小无衬线字体 |
FONT_HERSHEY_PLAIN | 小号无衬线字体 |
FONT_HERSHEY_DUPLEX | 正常大小无衬线字体比FONT_HERSHEY_SIMPLEX更复杂 |
FONT_HERSHEY_COMPLEX | 正常大小有衬线字体 |
FONT_HERSHEY_TRIPLEX | 正常大小有衬线字体,比FONT_HERSHEY_COMPLEX更复杂 |
FONT_HERSHEY_COMPLEX_SMALL | FONT_HERSHEY_COMPLEX的小译本 |
FONT_HERSHEY_SCRIPT_SIMPLEX | 手写风格字体 |
FONT_HERSHEY_SCRIPT_COMPLEX | 手写风格字体,比FONT_HERSHEY_SCRIPT_SIMPLEX更复杂 |
这些参数和FONT_ITALIC同时使用就会得到相应的斜体字
- fontSacle:字体大小
- color:字体的BGR颜色
- thickness:线的粗细
- lineType:线的类型
- bottomLeftOrigin:为True时图像文字翻转
import cv2
img = cv2.imread("first.jpg",cv2.IMREAD_UNCHANGED)
text = "hello world !"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,text,(222,333),font,1,(0,0,255),2)
cv2.imshow("line",img)
cv2.waitKey()
cv2.destroyAllWindows()
绘制圆:
cv2.circle(img,center,radius,color,thickness=None,lingType=None,shift=None)
- img : 绘制圆的图像
- center : 圆心的位置
- radius:圆的半径
- color:圆的颜色
- thickness:圆轮廓的粗细,如果为负数则为实心圆
- lineType:线的类型
- shift:中心坐标和半径值中的小数位数(缩小)。
import cv2
img = cv2.imread("first.jpg",cv2.IMREAD_UNCHANGED)
cv2.circle(img,(345,364),225,(255,0,0),-1,shift=0)
cv2.imshow("line",img)
cv2.waitKey()
cv2.destroyAllWindows()
练习题2:
利用直线、矩形、圆、文字,绘制美观的logo和自己的名字
评论出你的答案