2021-10-12学习opencv官方文档

第一次写博客,记录一下自己学习的过程
@2.3 opencv中的绘图功能

代码

这里使用的是pycharm

# 利用opencv绘制不同的几何形状
import numpy as np
import cv2 as cv
# 创建黑色的图像
img = np.zeros((512, 512, 3),np.uint8)
# 画线
cv.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
# 画矩形
cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), -1)
# 画圆圈
cv.circle(img, (447, 63), 63, (0, 0, 255), 2)
# 画椭圆
cv.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1)

cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

对于画线函数

cv.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
# 函数line参数为:void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)
其中
img: 要绘制线段的图像。
pt1: 线段的起点。 本代码块中起点为(00)
pt2: 线段的终点。 终点(511, 511)
color: 线段的颜色,通过一个Scalar对象定义。
      (255, 0, 0):蓝色, 
      (0, 0, 255):红色
thickness: 线条的宽度。线宽为5
lineType: 线段的类型。可以取值84, 和CV_AA, 分别代表8邻接连接线,4邻接连接线和反锯齿连接线。默认值为8邻接。为了获得更好地效果可以选用CV_AA(采用了高斯滤波)。
shift: 坐标点小数点位数![在这里插入图片描述]

为了对比,对下面两端代码可视化如下:

cv.line(img, (0, 0), (511, 511), (0, 0, 255), 2, 8)
cv.line(img, (511, 0), (0, 511), (0, 255, 0), 4, 4)

2021-10-12学习opencv官方文档_第1张图片对于矩形函数:

#cv2.rectangle(img, pt1, pt2, color, thickness, lineType)
# pt1 和 pt2 参数分别代表矩形的左上角和右下角两个点,而且 x 坐标轴是水平方向的,y 坐标轴是垂直方向的。
# color的值一般由RGB参数确定,可以参考上面直线上的参数
#lineType 负值代表填充整个矩形,正数就是代表线的粗细
cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), -1)
cv.rectangle(img, (384, 0), (510, 100), (0, 0, 255), 1)
cv.rectangle(img, (0, 384), (100, 128), (0, 255, 0), -1)

分别改变参数,得到的图像为:
2021-10-12学习opencv官方文档_第2张图片
参考下面博主写的

https://blog.csdn.net/sinat_41104353/article/details/85171185

画圆的代码可以类似得到

# # 画圆圈
cv.circle(img, (447, 63), 63, (0, 0, 255), 2)
cv.circle(img, (200, 63), 63, (0, 0, 255), -1)
# 第一个参数img是要画的图像,第二个参数(447, 63)是圆心坐标,
#第三个参数63代表半径长度,第四个参数(0, 0, 255)代表颜色,
#第五个参数2代表线的粗细,如果是-1就整个填充
#具体图像如下

2021-10-12学习opencv官方文档_第3张图片画椭圆

cv.ellipse(img, (256, 256), (100, 50), 0, 0, 180, (0, 255, 0), -1)

cv.ellipse(img, (0, 0), (50, 20), 20, 0, 90, (255, 0, 0), -1)
cv.ellipse(img, (0, 250), (50, 20), 0, 20, 90, (0, 0, 255), -1)
第一个参数,img是要画的图像;
第二个参数,(256, 256)是椭圆的圆心坐标;
第三个参数,(100, 50)椭圆的a值和b值
第四个参数,0 椭圆沿水平方向逆时针旋转的角度
第五个参数,0 沿长轴顺时针方向开始显示的角度(这个其实没太看出来)
第六个参数,180 椭圆沿长轴顺时针显示的角度
第七个参数,(0, 255, 0)颜色
第八个参数:线的宽度,和上面类似

图像为
2021-10-12学习opencv官方文档_第4张图片

你可能感兴趣的:(opencv,opencv,python)