Python OpenCV学习之图形绘制总结
OpenCV是一个非常强大的计算机视觉库,能够用于各种图像处理任务。在OpenCV中,图形绘制是非常基础的一部分,下面是Python OpenCV图形绘制的总结。
1. 图形绘制函数
OpenCV提供了多种基本的图形绘制函数,包括直线、矩形、圆、多边形等。这些函数都属于cv2模块,下面是一些常用图形绘制函数的代码示例:
1.1 绘制直线
import numpy as np
import cv2
# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)
# 画一条红色直线,起点为(0,0),终点为(511,511),线宽为5
cv2.line(img, (0,0), (511,511), (0,0,255), 5)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1.2 绘制矩形
import numpy as np
import cv2
# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)
# 画一个绿色矩形,左上角坐标为(50,50),右下角坐标为(200,200),线宽为3
cv2.rectangle(img,(50,50),(200,200),(0,255,0),3)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
1.3 绘制圆
import numpy as np
import cv2
# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)
# 画一个黄色圆,圆心坐标为(256,256),半径为100,线宽为-1(表示填充)
cv2.circle(img,(256,256), 100, (0,255,255), -1)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2. 从鼠标事件中获取绘图坐标
有时候需要从鼠标事件中获取用户绘图的坐标,以完成动态绘制的效果。下面是一段代码示例,从鼠标事件中获取坐标,并在图像上进行动态绘制:
import numpy as np
import cv2
# 定义回调函数,从事件中获取坐标并进行绘制
def draw_circle(event,x,y,flags,param):
if event == cv2.EVENT_LBUTTONUP:
cv2.circle(img,(x,y),50,(255,0,0),-1)
# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow('image')
# 注册回调函数
cv2.setMouseCallback('image',draw_circle)
while(1):
cv2.imshow('image',img)
if cv2.waitKey(20) & 0xFF == 27:
break
cv2.destroyAllWindows()
该代码创建了一个黑色图像,并注册了鼠标左键的点击事件。当用户点击鼠标左键时,回调函数将获取到坐标信息并进行绘制,实现了动态绘图的效果。
3. 总结
本文介绍了Python OpenCV图形绘制的基本函数和从鼠标事件中获取绘制坐标的方法。在实际开发中,可以根据需求灵活使用这些函数和方法,完成各种图形绘制任务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python OpenCV学习之图形绘制总结 - Python技术站