zoukankan      html  css  js  c++  java
  • opencv中的绘图函数

    目标
      • 学习使用 OpenCV 绘制不同几何图形
      • 你将会学习到这些函数:cv2.line(),cv2.circle(),cv2.rectangle() ,cv2.ellipse() ,cv2.putText() 等。

    代码
    上面所有的这些绘图函数需要设置下面这些参数:
      • img:你想要绘制图形的那幅图像。
      • color:形状的颜色。以 RGB 为例,需要传入一个元组,例如: (255,0,0 )代表蓝色。对于灰度图只需要传入灰度值。
      • thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.
      • linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

    6.1 画线
      要画一条线,你只需要告诉函数这条线的起点和终点。我们下面会画一条从左上方到右下角的蓝色线段。

    import numpy as np
    import cv2
    img = np.zeros((512, 512, 3), np.uint8)
    cv2.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
    cv2.imshow("Img", img)
    cv2.waitKey(0)
    cv2.destroyAllWindow()

    出现的问题:开始没有写最后三行,没有出现窗口显示

    这是黑色的底,我们的画布,我把窗口名叫做img

    np.zeros()有两个参数,一个是创建的图片矩阵大小,另一个是数据类型

    512,512是像素(第一个512像素高,第二个是512像素宽),3指BGR三种颜色

    uint8是用0-255表示所有颜色。

    1. cv2.line(img,(0,0),(511,511),(255,0,0),5)

    这个函数有5个参数,img是图像名称,起点坐标,终点坐标,(255,0,0)是蓝色,5是线的宽度

    会画一条 从左上方到右下角的蓝色线段。

    画线两要素:起点与终点

    画矩形

    1. cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

    这个函数有5个参数,图像名称,左上顶点坐标,右下顶点坐标,(0,255,0)是绿色,线宽为3

    右上角画一个绿色的矩形

    画矩形两要素:左上顶点和右下顶点坐标。

    画圆

    1. cv2.circle(img,(447,63), 63, (0,0,255), -1)

    这个函数有5个参数,图像名称,圆心坐标,半径63,(0,0,255)红色,线宽为-1,当线宽-1时表示封闭图形的颜色填充。

    在画的矩形中画一个圆,半径为128的一般63

    画圆两要素:指定圆形的中心点坐标和半径大小

    画椭圆

    1. cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

    这个函数有8个参数:图像名称,中心点坐标,长轴长度,短轴长度,旋转角度,图像出现的部分(长轴顺时针方向起始的角度和结束角度)0,180是下半个椭圆,颜色数组这里255是蓝色,线宽

    椭圆要素:1.是中心点的位置坐标 2.长轴和短轴的长度 3.椭圆沿逆时针方向旋转的角度 4.长轴顺时针方向起始的角度和结束角度

    画多边形

    1. pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
    2. pts = pts.reshape((-1,1,2))
    3. img = cv2.polylines(img,[pts],True,(0,255,255),3)

    这个函数有5个参数:图像名称,顶点列表(这个多边形在array中有四个顶点),True表示闭合,(0,255,255)是黄色,3是线宽

    在图片上添加文字

    1. font=cv2.FONT_HERSHEY_SIMPLEX
    2. cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)

    这个函数有八个参数,图像名称,字符串,坐标,字体,字号,(255,255,255)白色、线宽2

  • 相关阅读:
    jquery实现选项卡(两句即可实现)
    常用特效积累
    jquery学习笔记
    idong常用js总结
    织梦添加幻灯片的方法
    LeetCode "Copy List with Random Pointer"
    LeetCode "Remove Nth Node From End of List"
    LeetCode "Sqrt(x)"
    LeetCode "Construct Binary Tree from Inorder and Postorder Traversal"
    LeetCode "Construct Binary Tree from Preorder and Inorder Traversal"
  • 原文地址:https://www.cnblogs.com/h694879357/p/11910911.html
Copyright © 2011-2022 走看看