zoukankan      html  css  js  c++  java
  • opencv-python教程学习系列4-opencv绘图函数

    前言

    opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍opencv绘图函数,坚持学习,共同进步。

    系列教程参照OpenCV-Python中文教程

    系统环境

    系统:win_x64;

    python版本:python3.5.2;

    opencv版本:opencv3.3.1;

    内容安排

    1.知识点介绍;

    2.测试代码;

    具体内容

    1.知识点介绍;

    主要介绍一下opencv的绘图函数,设计的函数有cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()等。

    需要设置的参数有img-要绘制图形的图像;color-形状的颜色,以RGB为例,需要传入的元组(255,0,0)代表蓝色,对于灰度图只需传入灰度值;

    thickness-线条的粗细,如果给一个闭合图形设置为-1,那么这个图形就会被填充,默认值为1;

    linetype-线条的类型,8连接,抗锯齿等。默认是8连接。cv2.LINE_AA为抗锯齿;

    1.1 画线:需要输入函数的参数是线段的起点和终点;

    cv2.line(img,(0,0),(260,260),(255,0,0),5)#起点/终点/颜色/粗细
    

    1.2 画矩形:需要输入函数的参数是矩形左上角和右下角顶点的横、纵坐标;

    cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)#矩形左上角点的横纵坐标/右下角点/颜色/粗细
    

    1.3 画圆:需要指定圆心坐标和半径大小;

    cv2.circle(img,(425,63),63,(0,0,255),-1)#圆,-1为向内填充/圆心/半径
    

    1.4 画椭圆:

    cv2.ellipse(img,(256,256),(100,50),0,0,360,255,-1)
    #中心点/长轴/短轴/与短轴的顺时针旋转的始末角度/蓝色的饱和度/填充
    

    1.5 画多边形:需要指定每个顶点的坐标,构建一个大小相等于行数的数组,行数就是点的数目,这个数组必须为int32。

    pts=np.array([[10,5],[20,30],[50,10],[70,20]],np.int32)
    pts = pts.reshape((-1,1,2))
    #这里reshape的第一个参数为-1,表明这一维度的长度是根据后面的维度计算出来的
    cv2.polylines(img,[pts],True,(0,255,255)) #按照点的顺序连接线段
    #注意第三个参数若是False,我们得到的是不闭合的线
    

    1.6 在图像上添加文字:

    需要设置文字内容,绘制的位置,字体类型、大小、颜色、粗细、线类型等,这里推荐linetype=cv2.LINE_AA;

    font = cv2.FONT_HERSHEY_SIMPLEX
    #位置是左上角的起始点横纵坐标
    cv2.putText(img,'OpenCV',(20,300), font, 4,(255,255,255),2,cv2.LINE_AA)  

    1.7 显示结果;

    winname='example'
    cv2.namedWindow(winname)
    cv2.imshow(winname,img)
    cv2.waitKey(0)
    cv2.destroyAllWindow(winname)

    2.测试代码;

    import numpy as np
    import cv2
    
    #Create a black image
    img = np.zeros((512,512,3),np.uint8)
    
    cv2.rectangle(img,(350,0),(500,128),(0,255,0),3)#矩形
    cv2.circle(img,(425,63),63,(0,0,255),-1)#圆,-1为向内填充/圆心/半径
    
    cv2.namedWindow('image',cv2.WINDOW_NORMAL)
    cv2.resizeWindow('image',1000,1000)#定义frame的大小
    cv2.imshow('image',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    注意,示例代码给出了如何画圆,其他绘图操作类似。

    参考

    1.opencv绘图函数

  • 相关阅读:
    【转】cocos2d-x使用第三方的TTF字体库
    CCControlSlider和CCControlStepper用法
    Cocos2d-x中获取设备语言的方法
    ccrendertexture
    【转】如何使用KeyChain保存和获取UDID
    【luogu P4777】【模板】扩展中国剩余定理(EXCRT)(数论)
    【luogu P1495】【模板】中国剩余定理(CRT)/曹冲养猪(数论)
    【luogu P3980】Volunteer / 志愿者招募(网络流)
    凡喵识图 / Image Recognition(鸽笼原理)(模拟)
    回文树(并查集)(倍增)(LCA)(ST 表)
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/8110459.html
Copyright © 2011-2022 走看看