opencv库图像基础4绘图-python

1.绘画线条和简单图形

创建颜色字典和一个画布

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 颜色
colors={
'blue':(255,0,0),
'green':(0,255,0),
'red':(0,0,255),
'yellow':(0,255,255),
'white':(255,255,255),
'black':(0,0,0),
'rand': np.random.randint(0,high=256,size=(3,)).tolist()
}
# 显示图像
def show_img(img,title):
img_RGB = img[:,:,::-1]#BGR to RGB
plt.title(title)
plt.imshow(img_RGB)
plt.show() # 创建画布
def bg():
canvas = np.zeros((400,400,3),np.uint8)
canvas[:]=colors['white']
show_img(canvas,'background')
return canvas

画直线

# 画直线
def line(canvas):
cv2.line(canvas,(0,0) ,(400,400),colors['green'],5)
cv2.line(canvas,(0,400) ,(400,0),colors['black'],5)
show_img(canvas,"cv2.line")

画长方形

#画矩形
def rectangle(canvas):
cv2.rectangle(canvas,(10,50),(70,120),colors['green'],3 )
cv2.rectangle(canvas,(150,50),(170,120),colors['black'],-1) #填写-1表示填充
show_img(canvas,"cv2.rectangle")

画圆形


def circle(canvas):
cv2.circle(canvas,(200,200),150,colors['green'],3 )
cv2.circle(canvas,(200,200),50,colors['black'],-1 ) #填写-1表示填充
show_img(canvas,"cv2.rectangle")

画折线

def polyline(canvas):
pts = np.array( [[250,5] ,[220,80],[280,80]],np.int32 )
pts=pts.reshape( (-1,1,2) )
cv2.polylines(canvas, [pts],True,colors['blue'],3 ) #True表示线封闭
pts = np.array( [[150,205] ,[90,130],[230,60]],np.int32 )
pts=pts.reshape( (-1,1,2) )
cv2.polylines(canvas, [pts],False,colors['rand'],3 ) #True表示线封闭
show_img(canvas,"cv2.polylines")

2.在画板中添加文字

添加文字

def putText(canvas):
# 背景图片 添加的文字 位置 字体 字体大小 字体颜色 字体粗细
cv2.putText(canvas,"hello",(100,200) , cv2.FONT_HERSHEY_SIMPLEX,0.9,colors['blue'],2)
show_img(canvas,"cv2.putText")

输出

函数原型

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

参数介绍:

img:需要绘制文本的图像;

text:要绘制的文本内容;

org:表示要绘制的位置,图像中文本字符串的左下角;可以用一个元祖来表示x、y坐标,例如(10, 100)表示x=10,y=100。

fontFace:字体类型,如cv2.FONT_HERSHEY_SIMPLEX、cv2.FONT_HERSHEY_PLAIN等;对应的字体类型如下:

 cv2.FONT_ITALIC:斜体字的标志
cv2.FONT_HERSHEY_PLAIN:小尺寸无衬线字体
cv2.FONT_HERSHEY_SIMPLEX:正常大小的无衬线字体
cv2.FONT_HERSHEY_DUPLEX:正常大小的无衬线字体(比FONT_HERSHEY_SIMPLEX更复杂)
cv2.FONT_HERSHEY_COMPLEX:正常大小的衬线字体
cv2.FONT_HERSHEY_TRIPLEX:正常大小的衬线字体(比FONT_HERSHEY_COMPLEX更复杂)
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX:手写体字体
cv2.FONT_HERSHEY_SCRIPT_COMPLEX(比FONT_HERSHEY_SCRIPT_SIMPLEX的更复杂)

fontScale:字体的大小,字体比例因子乘以font-specific基本大小;

color:文本字体颜色,设置三通道的元组BGR,比如(255,0,0)

hickness:字体粗细,默认为1;

lineType:线条类型,默认为cv2.LINE_AA;

bottomLeftOrigin:坐标原点,如果为真,则图像数据原点位于左下角,否则它在左上角;

其中,org定义了文本起始位置,可以用一个元祖来表示x、y坐标,例如(10, 100)表示x=10,y=100。

opencv库图像基础4绘图-python的更多相关文章

  1. opencv基础教程 之 图像基础和绘图

    1,教程:感谢小强 2,用argparse传参数来显示一张图片 #!/usr/bin/python #linux系统 #coding=utf-8 import cv2 import argparse ...

  2. 实战深度学习(上)OpenCV库

    在如今人工智能的浪潮下,无数模拟机器学习和深度学习的开发者工具倍出,其中在计算机图形学和计算机视觉里面最流行的一个库就是OpenCV库了.计算机图形学和计算机视觉学在我们的自动驾驶和仿生机器人当中有着 ...

  3. python之opencv库

    关于OpenCV简介  OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C ...

  4. 使用Python+OpenCV进行图像模板匹配(Match Template)

    2017年9月22日 BY 蓝鲸 LEAVE A COMMENT 本篇文章介绍使用Python和OpenCV对图像进行模板匹配和识别.模板匹配是在图像中寻找和识别模板的一种简单的方法.以下是具体的步骤 ...

  5. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  6. 小白学 Python 爬虫(32):异步请求库 AIOHTTP 基础入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. Python如何安装OpenCV库

    转载:https://blog.csdn.net/weixin_35684521/article/details/81953047 OpenCV的概念可百度,在此不再赘述.https://baike. ...

  8. Python的Opencv库怎么装

    原文章写于时间2019.4 当时鼓捣Opencv库弄了好长时间,前前后后弄了五天,找了好多帖子不知道删除重装了多少次,现在把我试出来正确的方法给大家分享一下. 1.Pycharm 我用的是win10系 ...

  9. python安装opencv库

    1.打开anaconda prompt(安装anaconda会默认安装),键入 pip install opencv-python,如下: 2.安装过程如下所示: 3 测试是否安装成功 上述就说明安装 ...

  10. opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程

    很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...

随机推荐

  1. 2020第二届长安杯wp

    1 检材 1 的操作系统版本是 A. CentOS release 6.5 (Final) B. Ubuntu 16.04.3 LTS C. Debian GNU/Linux 7.8 (wheezy) ...

  2. 21.10 Python 使用CRC32校验文件

    CRC文件校验是一种用于验证文件完整性的方法,通过计算文件的CRC值并与预先计算的CRC校验值进行比较,来判断文件是否发生变化,此类功能可以用于验证一个目录中是否有文件发生变化,如果发生变化则我们可以 ...

  3. GDB调试程序 [补档-2023-07-19]

    gdb调试 ​ 它是gcc的调试工具,调试工具都能干什么就不多说了. 7-1生成调试信息 ​ 在使用gcc编译c/c++的程序时,需要在编译命令中加入 -g 这一参数,它可以为你显示函数名,变量名 等 ...

  4. jetbrains 系列 terminal history 设置

    之前的版本中 jetbrains 的 terminal 使用的是 ~/.zsh_history, 改版后使用的不是一个 history, 就会出现在 iterm2 中使用的 command, 在 py ...

  5. 15.6寸不到1kg!LG Gram超轻薄本发布:13代酷睿加持

    出道就以轻薄为主要卖点的LG Gram系列笔记本产品,在今年CES 2023上也迎来更新. 隶属于全新LG Gram UltraSlim产品线的15.6寸新品(15Z90RT),机身重量仅998g,厚 ...

  6. Go语言实现八大排序|排序算法|超详细保姆级别注释

    前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...

  7. .NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记

    2.2.2 核心模块--日志 ILogger 的使用 日志的 ID 日志的分类 日志的级别 LoggerProvider 日志的最佳实践 .NET Core 和 ASP.NET Core 中的日志记录 ...

  8. P3089 Pogo-Cow S

    [USACO13NOV] Pogo-Cow S 题目传送门 题解 首先,一眼DP,想想怎么推状态转移方程 朴素DP 定义二维数组 \(f[i][j]\),其中第一维表示当前所在的目标点是\(i\),第 ...

  9. 在Windows上使用.NET部署到Docker 《让孩子们走出大坑》

    折腾Docker 有几天了,整别的都没这个糟心.目前已经顺利部署运行起来了.顺便给大家分享下处理在Windows上使用.NET部署到Docker的相关问题解决方法. 1.  Docker无法安装问题 ...

  10. Asp-Net-Core学习笔记:3.使用SignalR实时通信框架开发聊天室

    SignalR牛刀小试 在MVP杨老师的博客里看到这么个东西,我还以为是NetCore3才推出的新玩意,原来是已经有很多年的历史了,那看来还是比较成熟的一个技术了. 简介 SignalR是一个.NET ...