Python 用 Opencv 绘制 点线以及图像显示

在之前的文章中我们介绍了如何Opencv对机读卡进行识别,
在这篇文章介绍一下Opencv的一些基础操作,如何显示图像,
如何利用 Opencv 绘制点与线,以及某些特殊的图形。

一、安装 Opencv

pip install opencv-python

如何读取图片并显示

import cv2
image = cv2.imread('./default.jpg', cv2.IMREAD_UNCHANGED)

cv2.namedWindow("image");
# cv2.resizeWindow("image", 800, 800);
cv2.imshow("image", image)
cv2.waitKey(5000) # 显示 5000 ms 即 5s 后消失 (0一直显示)
cv2.destroyAllWindows()

二、绘制圆(circle)

利用 opencv 自带的 circle() 函数,绘制一个点为圆心特定半径的圆,
当圆的半径特别小的时候,即为点(特殊的圆),
其函数的声明如下:

cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]])

参数含义:

  • img:要画的圆所在的矩形或图像
  • center:圆心坐标,如 (100, 100)
  • radius:半径,如 10
  • color:圆边框颜色,如 (0, 0, 255) 红色,BGR
  • thickness:正值表示圆边框宽度,负值表示画一个填充圆形
  • lineType:圆边框线型,可为 0,4,8
  • shift:圆心坐标和半径的小数点位数

使用示例:

from random import randint
import numpy
import cv2

image = numpy.zeros((480, 720, 3), numpy.uint8) #生成一个空灰度图像
point_color = (0, 0, 255) # BGR

# 要画的点的坐标
points_list = [(90, 155), (351, 404), (637, 329), (720, 135), (359, 368), (705, 358), (217, 477), (263, 19)]
for point in points_list:
	# 画直线,圆心为:point,半径为:1,颜色为:point_color,实心线,线粗:4
	cv2.circle(image, point, 1, point_color, 4)

# 画圆,圆心为:(160, 240),半径为:60,颜色为:point_color,实心线,线粗:2
cv2.circle(image, (160, 240), 60, point_color, 2)

冯奎博客

二、绘制直线(line)

使用 line() 函数绘制直线 并显示,其函数声明如下:

cv2.line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

参数含义:

  • img:要画的圆所在的矩形或图像
  • pt1:直线起点
  • pt2:直线终点
  • color:线条颜色,如 (0, 0, 255) 红色,BGR
  • thickness:线条宽度
  • lineType:
    • 8 (or omitted) : 8-connected line
    • 4:4-connected line
    • CV_AA - antialiased line
  • shift:坐标点小数点位数

使用示例:

from random import randint
import numpy
import cv2

image = numpy.zeros((480, 720, 3), numpy.uint8) #生成一个空灰度图像
point_color = (0, 0, 255) # BGR

# 画直线,起点为:(0,0),终点为:(480,720),颜色为:point_color,实心线,线粗:2
cv2.line(image, (0,0), (720,480), point_color, 2)

# 要画的线的坐标
points_list = [(90, 155), (351, 404), (637, 329), (720, 135), (359, 368), (705, 358), (217, 477), (263, 19)]
for x in range(4):
	# 画直线,起点为:points_list[x*2],终点为:points_list[x*2+1],颜色为:point_color,实心线,线粗:2
	cv2.line(image, points_list[x*2], points_list[x*2+1], point_color, 2)

冯奎博客

二、绘制直线(rectangle)

使用 rectangle() 函数绘制矩形 并显示,其函数声明如下:

cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) 

参数含义:

  • img:要画的圆所在的矩形或图像
  • pt1:矩形左上角的点
  • pt2:矩形右下角的点
  • color:线条颜色,如 (0, 0, 255) 红色,BGR
  • thickness:线条宽度
  • lineType:
    • 8 (or omitted) : 8-connected line
    • 4:4-connected line
    • CV_AA - antialiased line
  • shift:坐标点小数点位数

使用示例:

from random import randint
import numpy
import cv2

image = numpy.zeros((480, 720, 3), numpy.uint8) #生成一个空灰度图像
point_color = (0, 0, 255) # BGR

# 画矩形,左上角为:(0,0),右下角为:(480,720),颜色为:point_color,实心线,线粗:2
cv2.rectangle(image, (0,0), (720,480), point_color, 2)

# 要画的线的坐标
points_list = [(90, 155), (351, 404), (637, 329), (720, 135), (359, 368), (705, 358), (217, 477), (263, 19)]
for x in range(4):
	# 画矩形,左上角为:points_list[x*2],右下角为:points_list[x*2+1],颜色为:point_color,实心线,线粗:2
	cv2.rectangle(image, points_list[x*2], points_list[x*2+1], point_color, 2)

冯奎博客

冯奎博客
请先登录后发表评论
  • latest comments
  • 总共0条评论