在之前的文章中我们介绍了如何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()
利用 opencv 自带的 circle() 函数,绘制一个点为圆心特定半径的圆,
当圆的半径特别小的时候,即为点(特殊的圆),
其函数的声明如下:
cv2.circle(img, center, radius, color[, thickness[, lineType[, 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() 函数绘制直线 并显示,其函数声明如下:
cv2.line(img, pt1, pt2, color[, thickness[, lineType[, 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() 函数绘制矩形 并显示,其函数声明如下:
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, 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)
本文为冯奎原创文章,转载无需和我联系,但请注明来自冯奎博客fengkui.net
最新评论