简单几何图像一般包括点、直线、矩阵、圆、椭圆、多边形等等。首先认识一下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')

(三)绘制圆形

绘制圆形也很简单,只需要确定圆心与半径,函数:
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画三维几何图-Python下opencv使用笔记(二)(简单几何图像绘制)

    简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...

  2. OpenCv学习笔记(二)--Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

    (一)Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多,我们现在先看一下M ...

  3. Python下opencv使用笔记系列

    参考: opencv+python - 我爱智能 - 博客频道 - CSDN.NET http://blog.csdn.net/on2way/article/category/5630773

  4. C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)

    C++下opencv学习笔记(一)(图像的简单读取丶显示与存储) 前言 学习C++ OpenCV,第一需要具备面向对象语言的基础,第二要对图像处理机器学习有基础了解,容易入门.觉得自己基础已经有了可以 ...

  5. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  6. python下Opencv读取图片

    python下Opencv读取图片 import cv2 #cv2.imread默认读入模式是1,表彩色:0表示灰色 im = cv2.imread('images/1039.jpg') #注意这里的 ...

  7. 使用Python,OpenCV和Scikit-Image检测低对比度图像

    使用Python,OpenCV和Scikit-Image检测低对比度图像 1. 效果图 2. 原理 3. 源码 参考 这篇博客将介绍如何使用Python,OpenCV和Scikit-Image检测低对 ...

  8. Python,OpenCV轮廓属性、轮廓检测及绘制

    Python,OpenCV轮廓属性.轮廓检测及绘制 1. 效果图 2. 源码 2.1 轮廓属性 2.2 轮廓特征 参考 这篇博客将介绍OpenCV中的轮廓,轮廓的特征及属性(质心,面积,轮廓,近似轮廓 ...

  9. python储存与读取图片_Python下opencv使用笔记(一)(图像简单读取、显示与储存)...

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

最新文章

  1. WDS使用捕获映像制作企业自定义映像
  2. Hadoop1.x之hdfs集群搭建
  3. cross-env使用
  4. 三十岁前不要去在乎的29件事
  5. WordPress Kyma plugin检测kyma连接状态的逻辑
  6. 单片机小白学步系列(十五) 单片机程序下载失败总结
  7. linux,下载与安装
  8. 【ES6】Class 类的使用与继承方法详解
  9. c#目录以及子目录下图片批量缩放,像素不变,图像大小改变
  10. 用LinkedList模拟栈(Java容器)
  11. C# 使用RabbitMQ(二)安装
  12. 字符串:输入与缓冲区问题
  13. 从零开始的2.5D游戏开发
  14. ur机械臂 控制器_UR机器人远程控制研究
  15. 宝宝专业智力测试软件,希-内学习能力测验软件 - 智力评估软件 - 唯普诺心理,心理测评系统,心理测评软件,婴幼儿智能发育,心理软件...
  16. cpu低端计算机配置清单,i3 4160/GTX750Ti剑灵/英雄联盟中低端组装机配置清单
  17. java compiler类_利用 JavaCompiler 编译 Java 类文件
  18. babe的l使用步骤记录
  19. php mysql 别名_php和mysql的一些奇怪之处
  20. Oracle11g 通过DBF文件恢复数据

热门文章

  1. 为什么发动机需要吸入大量的空气?
  2. 使用opencv的viz模块显示3d点云
  3. 转:著名的100个管理定律点评10
  4. Codeforces Contest 1138 problem B Circus —— 死亡1700,暴力
  5. 腾讯企业邮箱多少钱?注册好腾讯企业邮箱怎么登录?
  6. 交换机的几种配置方法
  7. 电脑上如何禁止一切弹窗广告?永久关闭桌面弹出广告
  8. 在线运行Java代码获取APNIC中国区的ip段,用作绕过国内ip
  9. CRMEBV4小程序H5页面端宝贝列表分享海报以及会员中心分销推广不显示的常见问题解决
  10. c语言转fpga原理,要想玩转FPGA,就必须理解FPGA内部的工作原理-可编程逻辑-与非网...