Python下opencv使用笔记(二)(简单几何图像绘制)

7人阅读 评论(0) 收藏 举报
分类:

简单几何图像一般包括点、直线、矩阵、圆、椭圆、多边形等等。首先认识一下opencv对像素点的定义。图像的一个像素点有1或者3个值,对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值,他们表现出不同的颜色。
那么有了点才能组成各种多边形。

(一)首先绘制直线

函数为:cv2.line(img,Point pt1,Point pt2,color,thickness=1,line_type=8 shift=0)
有值的代表有默认值,不用给也行。可以看到这个函数主要接受参数为两个点的坐标,线的颜色(彩色图像的话颜色就是一个1*3的数组)如下:

1
2
3
4
5
6
<code class="hljs" python="">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')</code>

这里写图片描述

1
2
3
4
5
6
<code class="hljs" python="">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')</code>

这里写图片描述

(二)绘制矩形

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

1
2
3
4
5
6
7
<code class="hljs" python="">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')
</code>

这里写图片描述

(三)绘制圆形

绘制圆形也很简单,只需要确定圆心与半径,函数:
cv2.circle (img,(380,0),63,(255,0,0),3),比如:

1
2
3
4
5
6
<code class="hljs" python="">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')</code>

这里写图片描述

1
2
3
4
5
6
<code class="hljs" python="">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')</code>

这里写图片描述

(四)绘制椭圆

椭圆比较复杂,涉及到长轴短轴,椭圆圆心,旋转角度等等,看看opencv参考手册上的介绍吧:
这里写图片描述
图像化如下:
这里写图片描述
一个例子如下:

1
2
3
4
5
6
7
<code class="hljs" python="">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')</code>

这里写图片描述

查看评论

简单邮件传输协议SMTP封装类

简单邮件传输协议SMTP封装类作者:Asif Rasheed 翻译:刘建强 在Internet上,Email是最流行的传输媒体。这篇文章包括两个协议:. POP 3 协议: POP3协议(邮政传输协议...
  • ghj1976
  • ghj1976
  • 2001-08-22 18:15:00
  • 1446

opencv简单几何图像绘制

简单几何图像一般包括点、直线、矩阵、圆、椭圆、多边形等等。首先认识一下opencv对像素点的定义。图像的一个像素点有1或者3个值,对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值,他们表现出不...
  • contigo
  • contigo
  • 2016-11-27 11:10:48
  • 170

OpenCV入门笔记(二)

第二部分 第四章 1.Mat Mat是个类,由矩阵头和志向存储所有像素值的矩阵的指针。 OpenCV的计数机制:每隔Mat对象有自己的信息头,但是共享一个矩阵(“=”)。(因为信息头不同但是矩...
  • Librarvl
  • Librarvl
  • 2017-10-20 20:00:45
  • 69

Python下opencv的使用---二值化

图像的阈值处理一般使得图像的像素值更单一、图像更简单。阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的。当然阈值越多是越复杂的。下面将介绍opencv下的三种阈值方...
  • jjddss
  • jjddss
  • 2017-06-02 09:26:51
  • 2799

Python OpenCV Tutorial Introduction图像处理教程

OpenCV Tutorial Introduction Introduction Welcome to this tutorial about OpenCV in python ! Th...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-05-05 12:32:48
  • 964

Python下opencv使用笔记

写在之前  从去年开始关注python这个软件,途中间间断断看与学过一些关于python的东西,感觉python确实是一个简单优美、容易上手的脚本编程语言,众多的第三方库使得python异常的强大,可...
  • sqzhao
  • sqzhao
  • 2015-08-10 16:50:39
  • 375

Opencv Python版学习笔记(七)k均值-k-means

k-均值是一种基于形心得技术,首先从对象中随机选择k个对象,每个对象代表簇的初始均值或中心。对剩下的每个对象,根据其与各个簇中心的欧式距离,将它分配到最相似的簇。然后,k-均值算法迭代地盖伞簇内变差。...
  • gjy095
  • gjy095
  • 2013-07-04 13:08:39
  • 1360

Python语言opencv使用笔记(十二)(k均值算法之图像分割)

k均值(kmeans)聚类是一种最为简单的聚类方法,直接根据数据点之间的距离(欧氏距离,几何距离等等)来划分数据是属于哪一类的,当所有数据点所属的类别不在变化的时候,聚类也就完成了。详细原理可索引下面...
  • qq_30159015
  • qq_30159015
  • 2018-01-09 11:10:00
  • 81

opencv将二值图序列反转并腐蚀处理

opencv将二值图序列反转并腐蚀处理
  • xiaoxiaoxixixi
  • xiaoxiaoxixixi
  • 2017-06-19 16:38:50
  • 314

python opencv 图像二值化并显示

#!/usr/bin/python from urllib import * import cv2 import io imgStr = urlopen("http://www.btbu.edu.c...
  • ypwhs
  • ypwhs
  • 2015-01-19 23:14:16
  • 3483
    个人资料
    等级:
    访问量: 433
    积分: 206
    排名: 36万+
    文章存档