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

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

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值