欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

opencv_python学习笔记(2) ------绘制集合图形

程序员文章站 2022-03-31 12:25:33
...

opencv_python学习笔记(2)

------绘制集合图形

2.1 绘制直线

代码:cv2.line(img,pt1,pt2,color,thickness,lineType,shift)
参数:img:源图像
pt1:起点
pt2:终点
color:颜色(0,0,0)
thickness:粗细
lineType:类型

2.2 绘制圆形

代码:cv2.circle(img,center,radius,color,thickness,lineType)
参数:img:源图像
center:圆心
radius:半径
color:颜色(0,0,0)
thickness:粗细
lineType:类型

2.3 绘制矩形

代码:cv2.rectangle(img,pt1,pt2,color,thickness,lineType,shift)
参数:img:源图像
pt1:(左上)
pt2:(右下)
color:颜色(0,0,0)
thickness:粗细
lineType:类型

2.4 画椭圆

代码:cv2.ellipse(img,center,axes,angle,startAngle,endAngle,color,thickness,lineType)
参数:img:源图像
center:椭圆中心
axes:轴线(长轴,短轴)
angle:椭圆旋转角度,以度为单位
startAngle:椭圆弧的起始角度,以度为单位
endAngle:椭圆弧的终止角度,以度为单位
color:颜色(0,0,0)
thickness:粗细
lineType:类型 #线型-1表示填充

2.5 画多边形——需要指定每个顶点的坐标

例子

import numpy as np
pts=np.array([[10,3],[48,19],[60,3],[98,19]],np.int32) #数据类型必须是int32
pts=pts.reshape((-1,1,2)) 
cv2.polylines(img,[pts],True,(0,0,255),1)  # 图像,点集,是否闭合,颜色,线条粗细

‘’‘这里 reshape 的第一个参数为-1, 表明这一维的长度是根据后面的维度的计算出来的。如果第三个参数是 False,我们得到的多边形是不闭合的(首尾不相连)。’’’

2.6 添加文字

代码:cv2.putText(img,text,org,fontFace,fontScale,color,thickness,lineType,bottomLeftOrigin)
参数:img: 源图像
text:文字
org:左下角坐标
fontFace:字体类型
fontScale:字体大小
color:颜色(0,0,0)
thickness:粗细
lineType:类型
bottomLeftOrigin:

2.7 获取并修改图像中的像素点

描述:通过行列的坐标值获取该像素点的像素值,RGB图像返回一个蓝绿红的数组,灰度图像返回一个灰度的强度,使用相同的方法进行修改。
代码
img=cv2.imread(‘ni.jpg’) # 读入图像
px=img[100,100] # 获取像素点像素值
blue=img[100,100,0] #获取像素点的蓝像素值
img[100,100]=[1,1,1] # 更改像素的像素值

2.8 获取图像的属性

形状:img.shape
大小:img.size
数据类型:img.dtype

2.9 图像通道的拆分与合并

b,g,r=cv2.split(img) #通道的拆分
img=cv2.merge((b,g,r)) #通道的合并

2.10 色彩空间的改变

代码:cv2.cvtColor(src,code,dst,dstCn)
参数:src: 图像
code:输出图像
dst: color转化代码 #如dst=cv2.COLOR_BGR2LAB,
dstCn:输出通道