python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)

最近学了下 python opencv,分享下使用 opencv 在图片上绘制常用图形的方法。

案例中实现了在图片中添加线段、圆形、矩形、椭圆形以及添加文字的方法,使用 opencv2 实现的。

实现方法

1)画线段 cv.line

在图片中绘制一段直线

# 绘制线段
# 参数1:图片
# 参数2:起点
# 参数3:终点
# 参数4:BGR颜色
# 参数5:宽度
cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);

参数说明

参数 说明
参数1 img 原图片
参数2 (60, 40) 线段起点坐标(像素)
参数3 (90, 90) 线段终点坐标(像素)
参数4 (255, 255, 255) BGR颜色(0 - 255)
参数5 2 线段宽度

2)画圆形 cv.circle

在图片中绘制圆形

# 绘制圆形
# 参数1:图片
# 参数2:圆心
# 参数3:半径
# 参数4:BGR颜色
# 参数5:宽度 值为-1时填充
cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);

参数说明

参数 说明
参数1 img 原图片
参数2 (140, 120) 圆心的坐标(像素)
参数3 60 圆的半径(像素)
参数4 (0, 0, 255) BGR颜色(0 - 255)
参数5 2 线段宽度,为-1时进行填充

3)画矩形 cv.rectangle

在图片中绘制矩形

# 绘制矩形
# 参数1:图片
# 参数2:左上角
# 参数3:右下角
# 参数4:BGR颜色
# 参数5:宽度 值为-1时填充
cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);

参数说明

参数 说明
参数1 img 原图片
参数2 (220, 50) 左上角的坐标(像素)
参数3 (380, 220) 右下角的坐标(像素)
参数4 (0, 255, 0) BGR颜色(0 - 255)
参数5 2 线段宽度,为-1时进行填充

4)画椭圆形 cv.ellipse

在图片中绘制椭圆形,这里参数就比较多了…

# 绘制椭圆
# 参数1:图片
# 参数2:圆心
# 参数3:横纵轴长
# 参数4:倾斜角度
# 参数5:绘制起点角度
# 参数6:绘制终点角度
# 参数7:BGR颜色
# 参数8:宽度 值为-1时填充
cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);

参数说明

参数 说明
参数1 img 原图片
参数2 (60, 20) 椭圆中心坐标(像素)
参数3 (60, 20) 椭圆横、纵的距离(像素)
参数4 0 椭圆倾斜角度(0-360)
参数5 0 绘制起点角度(0-360)
参数6 0 绘制终点角度(0-360)
参数7 (255, 255, 255) BGR颜色(0 - 255)
参数8 2 线段宽度,为-1时进行填充

5)添加文本 cv.putText

给图片添加文本显示内容

# 添加文字
# 参数1:图片
# 参数2:文本内容
# 参数3:文字位置
# 参数4:文字类型
# 参数5:文字大小
# 参数6:BGR颜色
# 参数7:文字粗细
cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);

参数说明

参数 说明
参数1 img 原图片
参数2 “phone” 文本内容
参数3 (15, 30) 文本左上角坐标位置(像素)
参数4 cv2.FONT_HERSHEY_COMPLEX 文字类型
参数5 1 文字大小
参数7 (255, 255, 255) BGR颜色(0 - 255)
参数8 1 字体粗细

文字类型主要有下面几种:

1、cv.FONT_HERSHEY_SIMPLEX 正常尺寸无衬线
2、cv.FONT_HERSHEY_PLAIN 小尺寸无衬线
3、cv.FONT_HERSHEY_DUPLEX 正常尺寸(类型 1 的复制版)
4、cv.FONT_HERSHEY_COMPLEX 正常尺寸有衬线
5、cv.FONT_HERSHEY_TRIPLEX 正常尺寸有衬线(类型 4 的复杂版)
6、cv.FONT_HERSHEY_COMPLEX_SMALL (类型 4 的小尺寸)
7、cv.FONT_HERSHEY_SCRIPT_SIMPLEX 手写风格
8、cv.FONT_HERSHEY_SCRIPT_COMPLEX (类型 7 的复杂版)

以上字体可以试一下,可以看到不同的效果 (^_ ^)

完整代码

import cv2

# 读取图片。
img = cv2.imread("img.jpeg");

# 绘制线段
# 参数1:图片
# 参数2:起点
# 参数3:终点
# 参数4:BGR颜色
# 参数5:宽度
cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);

# 绘制圆形
# 参数1:图片
# 参数2:圆心
# 参数3:半径
# 参数4:BGR颜色
# 参数5:宽度 值为-1时填充
cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);

# 绘制椭圆
# 参数1:图片
# 参数2:圆心
# 参数3:横纵轴长
# 参数4:倾斜角度
# 参数5:绘制起点角度
# 参数6:绘制终点角度
# 参数7:BGR颜色
# 参数8:宽度 值为-1时填充
cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);

# 绘制矩形
# 参数1:图片
# 参数2:左上角
# 参数3:右下角
# 参数4:BGR颜色
# 参数5:宽度 值为-1时填充
cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);

# 添加文字
# 参数1:图片
# 参数2:文本内容
# 参数3:文字位置
# 参数4:文字类型
# 参数5:文字大小
# 参数6:BGR颜色
# 参数7:文字粗细
cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);
cv2.putText(img, "36.4C", (250, 250), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0), 2);

# 显示图像
cv2.imshow("title", img);

# 进程不结束,一直保持显示状态
cv2.waitKey(0);

#销毁所有窗口
cv2.destroyAllWindows();

到此这篇关于python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)的文章就介绍到这了,更多相关python opencv图形绘制内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • opencv3/C++绘制几何图形实例

    在图像上绘制几何图形 #include<iostream> #include<opencv2/opencv.hpp> using namespace cv; Mat src1, dst; void drawRectangle(); void drawLine(); void drawEllipse(); void drawCircle(); void tsxt(); int main() { src1 = imread("E:/image/image/daibola.jp

  • Python OpenCV实现基本图形绘制

    1.导入模块 import cv2 as cv import numpy as np 2.OpenCV绘图大致步骤 OpenCV 图形绘制步骤 (1)先定义基础画布canvas = np.zeros((400,600,3),dtype=np.uint8)+255 (2)画布分界,(300,0)分别是宽.高cv.line(canvas,(300,0),(300,399),(0,0,0,),2) (3)在画布上绘制图形,如画圆cv.circle(canvas, (150, 300), 88, (0,

  • python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)

    最近学了下 python opencv,分享下使用 opencv 在图片上绘制常用图形的方法. 案例中实现了在图片中添加线段.圆形.矩形.椭圆形以及添加文字的方法,使用 opencv2 实现的. 实现方法 1)画线段 cv.line 在图片中绘制一段直线 # 绘制线段 # 参数1:图片 # 参数2:起点 # 参数3:终点 # 参数4:BGR颜色 # 参数5:宽度 cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2); 参数说明 参数 值 说明

  • python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】

    本文实例讲述了python matplotlib模块基本图形绘制方法.分享给大家供大家参考,具体如下: matplotlib模块是python中一个强大的绘图模块 安装 pip  install matplotlib 首先我们来画一个简单的图来感受它的神奇 import numpy as np import matplotlib.pyplot as plt import matplotlib zhfont1=matplotlib.font_manager.FontProperties(fname

  • Python OpenCV实现图形检测示例详解

    目录 1. 轮廓识别与描绘 1.1 cv2.findComtours()方法 1.2 cv2.drawContours() 方法 1.3 代码示例 2. 轮廓拟合 2.1 矩形包围框拟合 - cv2.boundingRect() 2.2圆形包围框拟合 - cv2.minEnclosingCircle() 3. 凸包 绘制 4. Canny边缘检测 - cv2.Canny() 4.1 cv2.Canny() 用法简介 4.2 代码示例 5. 霍夫变换 5.1 概述 5.2 cv2.HoughLin

  • OpenCV 基本图形绘制函数详解

    用于绘制直线的line函数: 用于绘制椭圆的ellipse函数: 用于绘制矩形的rectangle函数: 用于绘制圆的circle函数: 用于绘制填充的多边形的fillPoly函数. #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespac

  • Python tkinter库图形绘制例子分享

    目录 一.椭圆绘制 二.矩形绘制 三.多边形绘制 一.椭圆绘制 实例代码: import tkinter as tk                    # 导入tkinter库,并重命名为tk from tkinter import messagebox          # 导入messagebox模块 mywindow = tk.Tk()                      # 创建一个窗体 mywindow.title("绘制椭圆")              # 设置

  • Python+OpenCV读写视频的方法详解

    目录 读视频,提取帧 接口函数:cv2.VideoCapture() 获取视频信息 使用set(cv2.CAP_PROP_POS_FRAMES)读取指定帧 读取函数(重点) 将图像写为视频 示例 fourcc 读视频,提取帧 接口函数:cv2.VideoCapture() 通过video_capture = cv2.VideoCapture(video_path)可以获取读取视频的句柄.而后再通过flag, frame = video_capture.read()可以读取当前帧,flag表示读取

  • python opencv 图像尺寸变换方法

    利用Python OpenCV中的 cv.Resize(源,目标,变换方法)就可以实现变换为想要的尺寸了 源文件:就不用说了 目标:你可以对图像进行倍数的放大和缩小 也可以直接的输入尺寸大小 变换的方法: CV_INTER_NN - 最近邻插值, CV_INTER_LINEAR - 双线性插值 (缺省使用) CV_INTER_AREA - 使用象素关系重采样.当图像缩小时候,该方法可以避免波纹出现.当图像放大时,类似于 CV_INTER_NN 方法.. CV_INTER_CUBIC - 立方插值

  • python opencv 图像拼接的实现方法

    初级的图像拼接为将两幅图像简单的粘贴在一起,仅仅是图像几何空间的转移与合成,与图像内容无关.高级图像拼接也叫作基于特征匹配的图像拼接,拼接时消去两幅图像相同的部分,实现拼接合成全景图. 具有相同尺寸的图A和图B含有相同的部分与不同的部分,如图所示:             用基于特征的图像拼接实现后: 设图像高为h,相同部分的宽度为wx 拼接后图像的宽w=wA+wB-wx 因此,可以先构建一个高为h,宽为W*2的空白图像,将左图像向右平移wx,右图像粘贴在右侧.则右图像刚好覆盖左图像中的相同部分

  • 深入学习Python+Opencv常用四种图像处理操作

    目录 改变色彩空间: cv.cvtColor() 改变图像大小:cv.resize() 二维卷积操作 常用模糊 opencv图像处理(深度学习中常用的) 改变色彩空间: cv.cvtColor() cv.cvtColor(img, flag) img:原图像 flag:要改变的类型 常用的flag有:cv.COLOR_BGR2GRAY (BGR->GRAY).cv.COLOR_BGR2HSV img = cv.imread(r'E:\0_postgraduate\test.jpg') gray

  • Python中的图形绘制简单动画实操

    目录 前言: 1.画螺旋曲线代码 2.输出​​ 3​.代码的部分解释 前言: Matplotlib 是一个非常广泛的库,它也支持图形动画. 动画工具以 matplotlib.animation 基类为中心,它提供了一个框架,围绕该框架构建动画功能. 主要接口有TimedAnimation和FuncAnimation,两者中FuncAnimation是最方便使用的. 1.画螺旋曲线代码 import matplotlib.pyplot as plt import matplotlib.animat

随机推荐