opencv从入门到放弃---绘图函数

opencv中的绘图函数需要设置下面这些参数

  • img:你想要绘制图形的那副图像
  • color:形状的颜色
  • thickness:线条的粗细,如果给定的是一个闭合图形设置为-1, 那么这个图形就会被填充;默认值为1
  • linetype:线条的类型,8连接,抗锯齿等等;默认是8连接;cv2.LINE_AA为抗锯齿,这样看起来会非常平滑

注:之前看的书上说所有的绘图函数的返回值必须是None,但是直接返回也好使,不知道。。。

画线

要画一条线,你只需要告诉函数这条线的起点和终点

import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
line = cv.line(image, (0, 0), (511, 511), (255, 0, 0), 5)
cv.imshow('image', line)
cv.imwrite('D:/2019-02/image-1.jpg', line)
cv.waitKey(0)

画矩形

需要告诉函数左上角和右下角顶点的坐标

import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
rectangle = cv.rectangle(image, (130, 130), (511, 511), (255, 0, 0), 5)
cv.imshow('image', rectangle)
cv.imwrite('D:/2019-02/image-1.jpg', rectangle)
cv.waitKey(0)

画圆

需要指定圆形的中心点坐标和半径的大小

import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
circle = cv.circle(image, (130, 130), 30, (255, 0, 0), -1)
cv.imshow('image', circle)
cv.imwrite('D:/2019-02/image-1.jpg', circle)
cv.waitKey(0)

画椭圆

画椭圆比较复杂,我们需要对输入几个参数,一个参数是中心点的坐标,下一个参数是长轴和短轴的长度,椭圆沿逆时针方向旋转的角度,椭圆弧沿顺时针方向起始的角度和结束角度,如果是0和360,那就是整个椭圆

import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
ellipse = cv.ellipse(image, (256, 256), (100, 50), 30, 0, 180, (255, 0, 0), -1)
cv.imshow('image', ellipse)
cv.imwrite('D:/2019-02/image-1.jpg', ellipse)
cv.waitKey(0)

运行结果:

PS:偏移角度是按照顺时针方向偏移的吧

画多边形

画多边形需要指定每个顶点的坐标

import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
poly = cv.polylines(image,[pts],True,(0,255,255))
cv.imshow('image', poly)
cv.imwrite('D:/2019-02/image-1.jpg', poly)
cv.waitKey(0)

当然这么一个图像也可以通过line函数进行操作,但是有一些麻烦

给图片添加数字

要在图片上添加数字,你需要设置下面参数:

  • 你要绘制的文字
  • 你要绘制的位置
  • 字体类型
  • 字体的大小
  • 文字的一般属性,如颜色、粗细、线条的类型等等,为了更好看一点推荐使用linetype=cv2.LINE_AA
import cv2 as cv
import numpy as np

image = cv.imread('D:/2019-02/lena.jpg')
font = cv.FONT_HERSHEY_SIMPLEX
text = cv.putText(image, 'opencv', (10, 256), font, 4, (255, 255, 255), 2)
cv.imshow('image', image)
cv.imwrite('D:/2019-02/image-1.jpg', text)
cv.waitKey(0)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值