简单几何图像一般包含点、直线、矩阵、圆、椭圆、多边形等等。首先认识一下opencv对像素点的定义。

图像的一个像素点有1或者3个值。对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值。他们表现出不同的颜色。

那么有了点才干组成各种多边形。

(一)首先绘制直线

函数为:cv2.line(img,Point pt1,Point pt2,color,thickness=1,line_type=8 shift=0)

有值的代表有默认值。不用给也行。能够看到这个函数主要接受參数为两个点的坐标,线的颜色(彩色图像的话颜色就是一个1*3的数组)例如以下:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512),np.uint8)#生成一个空灰度图像
cv2.line(img,(0,0),(511,511),255,5)
plt.imshow(img,'gray')

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.line(img,(0,0),(511,511),(155,155,155),5)
plt.imshow(img,'brg')

(二)绘制矩形

函数:cv2.rectangle(img,(380,0),(511,111),(255,0,0),3),须要确定的就是矩形的两个点(左上角与右下角)。颜色,线的类型(不设置就默认)。

比方:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.rectangle(img,(20,20),(411,411),(55,255,155),5)
plt.imshow(img,'brg')

(三)绘制圆形

绘制圆形也非常easy,仅仅须要确定圆心与半径,函数:

cv2.circle (img,(380,0),63,(255,0,0),3),比方:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.circle(img,(200,200),50,(55,255,155),1)#改动最后一个參数
plt.imshow(img,'brg')

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.circle(img,(200,200),50,(55,255,155),8)#改动最后一个參数
plt.imshow(img,'brg')

(四)绘制椭圆

椭圆比較复杂,涉及到长轴短轴,椭圆圆心,旋转角度等等,看看opencv參考手冊上的介绍吧:



图像化例如以下:



一个样例例如以下:

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = np.zeros((512,512,3),np.uint8)#生成一个空彩色图像
cv2.ellipse(img,(256,256),(150,100),0,0,180,250,-1)
#注意最后一个參数-1,表示对图像进行填充,默认是不填充的,假设去掉,仅仅有椭圆轮廓了
plt.imshow(img,'brg')

Python下opencv使用笔记(二)(简单几何图像绘制)的更多相关文章

  1. Python下opencv使用笔记(图像频域滤波与傅里叶变换)

    Python下opencv使用笔记(图像频域滤波与傅里叶变换) 转载一只程序喵 最后发布于2018-04-06 19:07:26 阅读数 1654  收藏 展开 本文转载自  https://blog ...

  2. Python下opencv使用笔记(一)(图像简单读取、显示与储存)

    写在之前 从去年開始关注python这个软件,途中间间断断看与学过一些关于python的东西.感觉python确实是一个简单优美.easy上手的脚本编程语言,众多的第三方库使得python异常的强大. ...

  3. Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换)

    前面以前介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这个方案直接对图像空间操作,操作简单.所以也是空间域滤波. 频域滤波说究竟终于可能是和空间域滤波实现相同的功 ...

  4. Python下opencv使用笔记(七)(图像梯度与边缘检測)

    梯度简单来说就是求导,在图像上表现出来的就是提取图像的边缘(无论是横向的.纵向的.斜方向的等等),所须要的无非也是一个核模板.模板的不同结果也不同.所以能够看到,全部的这些个算子函数,归结究竟都能够用 ...

  5. Python下opencv使用笔记(图像的平滑与滤波)

    对于图形的平滑与滤波,但从滤波角度来讲,一般主要的目的都是为了实现对图像噪声的消除,增强图像的效果. 对于2D图像可以进行低通或者高通滤波操作 低通滤波(LPF):有利于去噪,模糊图像 高通滤波(HP ...

  6. Python下opencv使用笔记(十一)(详解hough变换检测直线与圆)

    http://blog.csdn.net/on2way/article/details/47028969 http://blog.csdn.net/mokeding/article/details/1 ...

  7. Html学习笔记(二) 简单标签

    标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...

  8. 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整

    今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...

  9. Python版本OpenCV安装配置及简单实例

    # 2018-06-03 # 1. Python下载:https://www.python.org/downloads/ 选择对应平台对应版本的的Python进行安装. 2. Python版OpenC ...

随机推荐

  1. string与double的互相转换

    #include <iostream> #include <string> #include <sstream> string DoubleToString(dou ...

  2. js判断对象为空

    http://www.jb51.net/article/42713.htm var isEmptyValue = function(value) { var type; if(value == nul ...

  3. 【 APACHE 】 Apache2.4.x版本虚拟主机配置

    今天准备使用apache搭建一个目录浏览的服务,折腾了一下. apache2.4.x以后的版本: Require all granted 代替了apache2.4.x以前版本: Order Allow ...

  4. solr in action

    Miscellaneous settings: Lucene version solr使用luceneMatchVersion来决定当前索引正在使用的lucene版本及是否禁用新版本的特性.

  5. IP自动切换脚本

    @echo off & cls & color 47 & mode con cols=80 lines=25 & title [IP自动切换工具]clsecho. ec ...

  6. k-密码

    链接:https://www.nowcoder.com/acm/contest/90/K来源:牛客网 题目描述 ZiZi登录各种账号的时候,总是会忘记密码,所以他把密码都记录在一个记事本上.其中第一个 ...

  7. 纯css 超链接变按钮

    a{ font-family:Arial; font-size:.8em; text-align:center; margin:3px;}a:link,a:visited{ color:#A62020 ...

  8. 让你的mysql或mariadb 支持ipv6

    如果你在windows 或Linux系统已经安装了mysql/mariadb,并且操作系统本身已经支持了ipv6. 在/etc/my.conf 这样配置可以让mysql也支持ipv6 [mysqld] ...

  9. 5、Flask实战第5天:页面跳转和重定向

    GET和POST请求 在网络请求中有许多请求方式,比如GET, POST, DELETE, PUT等,最常用的就是GET和POST GET 只会在服务器上获取资源,不会更改服务器的状态,这种请求方式推 ...

  10. RPD Volume 172 Issue 1-3 December 2016 评论01

    Evaluation of Imaging Dose From Different Image Guided Systems During Head and Neck Radiotherapy: A ...