opencv模块提供了画图函数接口,这些函数接口可以很方便的绘制简单地图形。
cv2.line():绘制线段函数
cv2.circle():绘制圆
cv2.rectangle():绘制矩形
cv2.ellipse():
cv2.putText():
首先我们先画最简单的线段,代码如下:

import numpy as np
import cv2
from matplotlib import pyplot as plt
img = np.zeros((512, 512, 3), np.uint8)cv2.line(img,(0,0), (512, 512),(255, 0, 0), 5)cv2.imwrite('line.jpg', img)
img1 = cv2.imread('line.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img1)
img1 = cv2.merge([r, g, b])
plt.imshow(img1, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])

这段代码运行结果就是从左上到右下的一段蓝线,效果如下:

为了更好的展示line函数接口的参数含义,特写如下代码:

import numpy as np
import cv2
from matplotlib import pyplot as plt
img1 = np.zeros((512, 512, 3), np.uint8)
img2 = np.zeros((512, 512, 3), np.uint8)
img3 = np.zeros((512, 512, 3), np.uint8)
cv2.line(img1,(0,0), (511, 511),(255, 0, 0), 5)cv2.imwrite('line1.jpg', img1)
img1 = cv2.imread('line1.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img1)
img1 = cv2.merge([r, g, b])cv2.line(img2,(0,0), (254, 254),(0, 255, 0), 5)cv2.imwrite('line2.jpg', img2)
img2 = cv2.imread('line2.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img2)
img2 = cv2.merge([r, g, b])cv2.line(img3,(255,255), (511, 511),(0, 0, 255), 5)cv2.imwrite('line3.jpg', img3)
img3 = cv2.imread('line3.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img3)
img3 = cv2.merge([r, g, b])plt.subplot(131)
plt.imshow(img1, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])
plt.subplot(132)
plt.imshow(img2, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])
plt.subplot(133)
plt.imshow(img3, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])

运行结果为:

由此可以清晰的明白了line函数接口的用法和参数意义。
矩形是由四条线段组成的,因此矩形完全可以使用line函数画出,opencv模块单独提供了矩形绘制接口cv2.rectangle()。
代码如下:

import numpy as np
import cv2
from matplotlib import pyplot as pltimg1 = np.zeros((1024, 1024, 3), np.uint8)cv2.rectangle(img1,(255,255), (767, 767),(255, 0, 0), 5)cv2.imwrite('rectangle.jpg', img1)
img1 = cv2.imread('rectangle.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img1)
img1 = cv2.merge([r, g, b])plt.imshow(img1, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])

运行结果如下:

可见rectangle函数的参数与line函数的参数一模一样。
同时我们发现其他绘图函数的参数和line函数的参数也都是一样的。
圆形绘图代码:

import numpy as np
import cv2
from matplotlib import pyplot as pltimg1 = np.zeros((1024, 1024, 3), np.uint8)cv2.circle(img1,(512,512), 379,(255, 255, 0), 5)cv2.imwrite('circle.jpg', img1)
img1 = cv2.imread('circle.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img1)
img1 = cv2.merge([r, g, b])plt.imshow(img1, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])

运行结果为:

椭圆形绘图代码:

import numpy as np
import cv2
from matplotlib import pyplot as pltimg1 = np.zeros((1024, 1024, 3), np.uint8)cv2.ellipse(img1,(512,512), (379, 255), 0,0,360,150,-1)cv2.imwrite('ellipse.jpg', img1)
img1 = cv2.imread('ellipse.jpg', cv2.IMREAD_ANYCOLOR)
b,g,r = cv2.split(img1)
img1 = cv2.merge([r, g, b])plt.imshow(img1, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([])
plt.yticks([])

运行结果为:

我们发现椭圆的绘制函数和其他绘制函数稍微有一些区别,这一点我们需要注意。

python使用opencv模块画简单的图形相关推荐

  1. python中opencv安装_怎么为python安装opencv模块-百度经验

    opencv可以方便的进行图片处理,因此,搞人工智能和计算机视觉的人猿,很有必要为自己的python安装一个opencv模块. 下面,我就介绍一下具体方法. 工具/原料 电脑 python 方法/步骤 ...

  2. python通过opencv使用图片制作简单视频(亲测)

    最近在学习视频制作,但是做起来太浪费时间了,我就一直在想能否使用python等脚本实现制作视频,因为我看视频网站上很多营销号视频就是通过图片制作视频的,播放量还不错,我准备试一试. 一.目标 1.自动 ...

  3. Python的turtle模块画爱心箭(附源码)

    Python的turtle模块画爱心箭源码 import turtle as t t.hideturtle() t.speed(100) def f(a,b):#画箭,a,b为箭尖坐标t.penup( ...

  4. 用python函数画德国国旗代码_用Python的turtle模块画国旗

    最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle.这里面有turtle的各类指令.turtle ...

  5. 用python函数画德国国旗代码_使用Python的turtle模块画国旗

    Python的turtle模块画国旗主要用到两个函数:draw_rentangle和draw_star. 至于函数的调用就和我们学的C,C++是一样的.对于turtle画国旗的程序中,首先是查找国旗的 ...

  6. 用python画简单的图形

    用python画几个简单的图形: ①三角形 from turtle import *for i in range(3):fd(180)left(120) ②倒三角+正三角 from turtle im ...

  7. python的opencv模块_Python图像识别精讲之OpenCV模块(1)

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

  8. 能带曲线图绘制python_如何使用python的matplotlib模块画折线图

    python是个很有趣的语言,可以在cmd命令窗口运行,还有很多的功能强大的模块.这篇经验告诉你,如何利用python的matplotlib模块画图. 工具/原料 windows系统电脑一台 pyth ...

  9. 怎么用python画饼状图_如何使用python的pygal模块画饼状图

    python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块,画饼状图. 工具/原料 windows系统电脑一台 py ...

最新文章

  1. 彻底搞懂Nginx的五大应用场景
  2. UIWebView中字体自动放大问题的探究
  3. 消息队列 应用场景 解析
  4. [Hands On ML] 4. 训练模型
  5. bpmn2.0业务过程模型和符号_IT帮业务架构学习小组学习内容
  6. pytorch创建datset
  7. 维护LINQ to SQL多对多表间关系[转]
  8. at shutdown 不起作用_at胎是什么胎
  9. linux登录显示 Error in service module错误
  10. java设计模式之组合设计模式
  11. 一次Full GC分析
  12. MAC中文版 FCPX V10.6.5 专属视频剪辑后期工具及其插件安装使用教程
  13. 花指令 用c语言,最新一批花指令
  14. 洛谷P3386-二分图最大匹配
  15. 面试小知识(2)为什么TCP需要三次握手和四次挥手
  16. 现有的人脸数据库介绍及下载链接
  17. 【内推】阿里集团2015年实习生招聘
  18. SQL中的条件判断语句(case when zhen)用法
  19. 【野蛮成长】经济学:红海与蓝海
  20. springboot福佳生活超市进销存管理系统毕业设计源码261620

热门文章

  1. java实现统计pv和uv_shell统计pv与uv、独立ip的方法
  2. 海康威视 0day_清华紫光原厂3D TLC颗粒初体验,海康威视C2000 PRO 2TB版体验
  3. 赵明称荣耀2022年全球销量有望翻倍;微软完成197亿美元收购Nuance | 美通社头条...
  4. 信息与通信的数学基础——第十三章 行波法
  5. 根据贷款还款方式(等额本金,等额本息,等本等息,先息后本),计算本息
  6. 利用Python脚本给图片批量添加文字水印
  7. 豪华金色粒子动态logo展示AE视频模板
  8. (a++) + (++a)
  9. 平面机构创意组合及分析实验QY-JX09
  10. TCP/IP网络编程:计算器服务器端/客户端