【OpenCV 图像基础】2.1图像基本处理:OpenCV中的绘图函数

目录

1.学习目标

2.线段绘制 

3.矩形绘制

4.圆的绘制

5.椭圆绘制

6.多边形绘制

7.添加文字 

8.综合效果 


1.学习目标

2.线段绘制 

代码:

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)
cv2.imshow("black", img)
cv2.waitKey(0)
cv2.destroyWindow("black")
# 绘制一条线宽为5的线段
cv2.line(img,(0,0),(200,500),(0,0,255),5) # 起点为(0,0),在x方向为200,在y方向为500,线宽5

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出:

3.矩形绘制

代码: 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 画一个绿色边框的矩形,参数2:左上角坐标,参数3:右下角坐标
cv2.rectangle(img,(384,0),(510,128),(0,255,255),-1)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

4.圆的绘制

代码: 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 画一个填充红色的圆,参数2:圆心坐标,参数3:半径
cv2.circle(img,(447,63), 63, (0,0,255), -1)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

5.椭圆绘制

代码: 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 在图中心画一个填充的半圆
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 360, (0, 255, 0), -1)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

6.多边形绘制

代码: 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 定义四个顶点坐标
pts = np.array([[10, 5],  [50, 10], [70, 20], [20, 30]])
print(pts)
# 顶点个数:4,矩阵变成4*1*2维
pts = pts.reshape((-1, 1, 2))
print(pts)
#绘制椭圆
cv2.polylines(img, [pts], True, (0, 255, 255))
winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

[[10  5]
 [50 10]
 [70 20]
 [20 30]]

[[[10  5]]

 [[50 10]]

 [[70 20]]

 [[20 30]]]

7.添加文字 

代码: 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

#添加文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(50,200), font, 3,(0,255,255),5)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

8.综合效果 

import numpy as np
import cv2

# 创建一张黑色的背景图
img=np.zeros((512,512,3), np.uint8)

# 绘制一条线宽为5的线段
cv2.line(img,(0,0),(511,511),(255,0,0),1)

# 画一个绿色边框的矩形,参数2:左上角坐标,参数3:右下角坐标
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

# 画一个填充红色的圆,参数2:圆心坐标,参数3:半径
cv2.circle(img,(447,63), 63, (0,0,255), -1)

# 在图中心画一个填充的半圆
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, (255, 0, 0), -1)

#绘制多边形
pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts=pts.reshape((-1,1,2))
cv2.polylines(img,[pts], True, (0,0,255),1)

# 这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。
#添加文字
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2)

winname = 'example'
cv2.namedWindow(winname)
cv2.imshow(winname, img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

输出: 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值