永兴的笔记-OpenCV-2简单绘图

在这里插入图片描述
绘制直线:
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和自己的名字

评论出你的答案

发布了45 篇原创文章 · 获赞 28 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/m0_43505377/article/details/103746386