kongen kongen
首页
导航站
  • 学习教程

    • Opencv教程
    • C++基础教程
    • C++_Primer教程
    • CUDA编程
  • Opencv
  • CNN
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 十架道路

    • 十架七言系列
    • 基督徒生活观
    • 上帝的蓝图
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Kongen

你好呀(✪ω✪)
首页
导航站
  • 学习教程

    • Opencv教程
    • C++基础教程
    • C++_Primer教程
    • CUDA编程
  • Opencv
  • CNN
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 面试题库

    • HTML
    • CSS
    • jQuery
    • Vue
    • 零碎
  • 面试心得

    • 杂言碎语
  • 十架道路

    • 十架七言系列
    • 基督徒生活观
    • 上帝的蓝图
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • OpenCV简介

  • OpenCV中的 Gui特性

    • 图像入门
    • 视频入门
    • OpenCV中的绘图功能
      • 目标:
      • 代码
      • 绘制直线
      • 绘制矩形
      • 绘制圆形
      • 绘制椭圆
      • 绘制多边形
      • 向图像中添加文字
      • 结果
    • 把鼠标作为画笔
    • 用滑动条做调色板
  • 核心操作

  • OpenCV中的图像处理

  • 特征检测和描述

  • 视频分析

  • 相机校准和3D重建

  • 机器学习

  • 计算摄影

  • 目标检测

  • Opencv基础原理
  • OpenCV中的 Gui特性
kongen
2019-06-11
目录

OpenCV中的绘图功能

# 目标:

  • 用OpenCV绘制图形
  • 掌握函数:cv.line(), cv.circle() , cv.rectangle(), cv.ellipse(), cv.putText()

# 代码

上述函数的参数:

  • img:用于设置图像
  • color:用于设置颜色。是一个RGR值,将用元组传递,例如:(255,0,0)为蓝色。对于灰度图像,只需传递标量值。
  • thickness:用于设置线条或圆形等的厚度。如果是- 1则在图案内生成闭合图案并填充颜色。这个参数的默认厚度为1。
  • lineType:用于设置线条的类型,有8型连接,抗锯齿等。默认情况是8型连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

# 绘制直线

要绘制线条,你需要设置起点和终点坐标。我们将创建一个黑色图像,并在其上从左上角到右下角绘制一条蓝线。 参考代码:

import numpy as np
import cv2 as cv
# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
cv.line(img,(0,0),(511,511),(255,0,0),5)
1
2
3
4
5
6

# 绘制矩形

要绘制矩形,你需要设置矩形的左上角和右下角的坐标。这次我们将在图像的右上角绘制一个绿色矩形。 参考一下代码:

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

# 绘制圆形

要绘制圆形,你需要设置其圆点坐标和半径,我们将在上面绘制的矩形内绘制一个圆。 参考一下代码:

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

# 绘制椭圆

要绘制椭圆,我们需要传递几个参数,一个参数是椭圆中心位置(x,y),下一个是长轴长度和断轴长度(a,b),角度是椭圆在逆时针方向上的旋转角度,startAngle和endAngle表示从主轴顺时针方向测量的椭圆弧的起点和终点,即给出值0和360给出完整的椭圆,给出值180则画出半个椭圆。 参考一下代码:

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

# 绘制多边形

要绘制多边形,首先需要顶点坐标。 将这些点转换为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))
1
2
3

注意:如果第三个参数为False,则绘制所有点的相连图形而不是闭合图形。cv.polylines()可用于绘制多条线。 只需创建要绘制的所有行的列表并将其传递给函数。 所有线条都将单独绘制。 绘制一组直线比每行调用cv.line()要好得多,速度更快。

# 向图像中添加文字

要将文本放入图像中,你需要传递以下几个参数:

  • 要写入的文本数据,
  • 要放置的位置(即文本数据的左下角)
  • 字体类型(检查cv.putText()文档以获取支持的字体),
  • 字体大小
  • 常规的参数,比如颜色、粗细、线型等,为了更好看,建议使用lineType = cv.LINE_AA作为线型参数的值。

我们将在图像上编写白色的OpenCV字样。 参考以下代码:

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

# 结果

是时候看看我们所绘制图案的结果了,正如文章之间所讲述的那样,通过显示图像将上面六个绘制结果显示出来。 窗口将如下图所示: image3

编辑 (opens new window)
视频入门
把鼠标作为画笔

← 视频入门 把鼠标作为画笔→

最近更新
01
附录L_CUDA底层驱动API
02-08
02
附录K_CUDA计算能力
02-08
03
附录J纹理获取
02-08
更多文章>
Theme by Vdoing | Copyright © 2024-2025 Kongen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×