首页 > 编程语言 >python_opencv_画图_直线_矩形_圆_多边形_文字提示

python_opencv_画图_直线_矩形_圆_多边形_文字提示

时间:2023-03-02 17:47:23浏览次数:34  
标签:img python cv2 画图 opencv np 100 cv 255

opencv 绘图

参数说明

绘制形状的函数有一些共同的参数:

  • img:要绘制形状的图片
  • color:绘制的颜色
    • 彩色图就传入 BGR 的一组值,如蓝色就是 (255,0,0)
    • 灰度图,传入一个灰度值就行
  • thickness:线宽,默认为 1;对于矩形 / 圆之类的封闭形状而言,传入 - 1 表示填充形状
  • lineType:线条类型,三个参数可选 cv2.LINE_4cv2.LINE_8cv2.LINE_AA

1. 画线

cv2.line(img, ps, pe, color, thickness, lineType, shift)

ps:直线的起点位置,注意这是一个坐标点,类似 (X,Y) 这样,
pe:直线的终点位置,同上

绘制多条直线

如果需要绘制多条直线,使用 cv2.polylines() 要比 cv2.line() 高效很多
例如:

# 使用cv2.polylines()画多条直线
line1 = np.array([[100, 20],  [300, 20]], np.int32).reshape((-1, 1, 2))
line2 = np.array([[100, 60],  [300, 60]], np.int32).reshape((-1, 1, 2))
line3 = np.array([[100, 100],  [300, 100]], np.int32).reshape((-1, 1, 2))
cv2.polylines(img, [line1, line2, line3], True, (0, 255, 255))

2. 矩形

cv2.rectangle(img, ps, pe, color, thickness, lineType, shift)

ps:矩形左上角点的坐标,
pe:矩形右下角点的坐标,
shift:坐标点小数点位数

3. 圆

cv2.circle(img, center, radius, color, thickness, lineType, shift)

center:圆心坐标,
radius:圆的半径值,
shift:圆心坐标和半径的小数点位数

5.  多边形

cv2.polylines(img, pts, isClosed, color, thickness, lineType, shift)

pts:多边形各边的坐标点组成的一个列表,是一个 numpy 的数组类型

isClosed:值为 True 或 False,若为 True 则表示一个闭合的多边形,若为 False 则不闭合

要绘制多边形,首先需要顶点的坐标。将这些点组成形状为ROWSx1x2的数组,其中ROWS是顶点数,并且其类型应为 int32。在这里,我们绘制了一个带有四个顶点的黄色小多边形。

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

6. 向文本或矩形框添加文字

cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)

  • text:文字内容,

  • org:文字在图像中的左下角坐标

  • fontFace:字体类型,可选参数有以下几种

FONT_HERSHEY_SIMPLEX,FONT_HERSHEY_PLAIN,FONT_HERSHEY_DUPLEX,FONT_HERSHEY_COMPLEX, FONT_HERSHEY_TRIPLEX, FONT_HERSHEY_COMPLEX_SMALL, FONT_HERSHEY_SCRIPT_SIMPLEX, orFONT_HERSHEY_SCRIPT_COMPLEX

  • fontScale:缩放比例,用该值乘以程序字体默认大小即为字体大小
  • bottomLeftOrigin:默认为 true,即表示图像数据原点在左下角;若为 False 则表示图像数据原点在左上角。
import cv2 as cv
import numpy as np

img=np.zeros([512,512,3],np.uint8) ##创建一副黑色的图片

"""画线"""
cv.line(img,(0,32),(512,89),(255,0,0),3,cv.LINE_8)

"""画矩阵"""
tangle=cv.rectangle(img, (84, 45), (210, 228), (0, 255, 0), 3,cv.LINE_4)

"""画圆"""
cv.circle(img, (447, 63), 63, (0, 0, 255), -1)

"""画椭圆"""
cv.ellipse(img, (256, 256), (100, 50), 90, 0, 360, (255, 0, 0), 2)

"""画多边形"""
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(0,255,255))

"""在图片上加文字"""
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img,'OpenCV',(10,500), font, 2,( 0,255,0),2,cv.LINE_AA)

"""矩形框上加文字"""
cv.putText(tangle,'OpenCV',(84, 40), font, 0.5,( 0,255,0),1,cv.LINE_AA)

"""使用cv.polylines()画多条直线"""
line1 = np.array([[100, 20],  [300, 20]], np.int32).reshape((-1, 1, 2))
line2 = np.array([[100, 60],  [300, 60]], np.int32).reshape((-1, 1, 2))
line3 = np.array([[100, 100],  [300, 100]], np.int32).reshape((-1, 1, 2))
cv.polylines(img, [line1, line2, line3], True, (0, 255, 255))

cv.imshow('img',img)
cv.waitKey(0)
cv.destroyAllWindows()

标签:img,python,cv2,画图,opencv,np,100,cv,255
From: https://www.cnblogs.com/zhuoss/p/17172755.html

相关文章

  • python 在编写库需要调用自己内部的文件
    ChatGPT回答:如果你的库需要调用自己内部的文件,可以使用相对路径来引用这些文件。假设你的库名为mylib,它的文件结构如下:mylib/__init__.pymodule1.pydata......
  • python3和scrapy使用亿牛云隧道代理问题以及代码
    一、前言近期,我参与了一个需要爬取国家食品药品监督局数据的项目,但该网站存在IP屏蔽机制。因此,我需要在Scrapy框架中实现自动IP切换,才能完成任务。然而,尽管我使用了第三方......
  • PYTHON对象
    PYTHON对象类的属性称之为成员变量类的行为称之为成员方法self关键字用来表示类对象自身在方法内部,想要访问类的成员变量,必须使用self可以在传参的时候忽略......
  • opencv 形态学运算:腐蚀_erode和膨胀_dilate
    形态学操作形态学操作就是基于形状的一系列图像处理操作。OpenCV为进行图像的形态学变换提供了快捷、方便的函数。最基本的形态学操作有二种,他们是:膨胀与腐蚀(Dilatio......
  • 【编程基础之Python】7、Python基本数据类型
    (【编程基础之Python】7、Python基本数据类型)Python基本数据类型Python是一种动态类型语言,它支持多种基本数据类型和复合数据类型,让开发人员能够更加方便地处理不同类型......
  • Python类和对象的绑定方法及非绑定方法
    类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。一、绑定方法1对象的绑定方法在类中没有被任何装饰器修......
  • Python 入门的基本语法规则
    官方对Python的介绍如下:Python是一款易于学习且功能强大的编程语言。它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python有着非广泛的应用,几乎所有大......
  • python监听麦克风数据
    importpyaudioimportnumpyasnpimporttimeCHUNK=1024FORMAT=pyaudio.paInt16CHANNELS=2RATE=44100defaudioCheckAI():#麦克风检测aiglobal......
  • Python设置字符串颜色
    使用\033[3表示字体颜色,\033[4表示背景色。示例print("\033[31;1mhello")print("\033[32;1mhello")print("\033[33;1mhello")print("\033[34;1mhello")print("\033[3......
  • Python生成PDF:Reportlab的六种使用方式
     Reportlab是Python创建PDF文档的功能库这里是整理过的六种Reportlab使用方式,主要参考的是《ReportLabUserGuide》 一、使用文档模板DocTemplateReportlab的基础......