成都网站建设桔子科技,简单的网站设计案例,在哪个网站做视频好赚钱,繁昌网站建设OpenCV彩色图像中一个像素是按照“B-G-R”模式组织的。 绘图函数的一些公众参数#xff1a; img #xff1a;图像对象 color#xff1a; 颜色#xff0c;如果彩色用一个三元组表示#xff0c;三元组的元素按照B-G-R组织#xff0c;三元组(0,255,0)中B为0#xff0c;G为2…OpenCV彩色图像中一个像素是按照“B-G-R”模式组织的。 绘图函数的一些公众参数 img 图像对象 color 颜色如果彩色用一个三元组表示三元组的元素按照B-G-R组织三元组(0,255,0)中B为0G为255R为0所以表示的是纯绿色。如果是灰度则用单个数值表示. thickness线条宽度。 point点位置用一个二元组表示。 lineType : 线条类型在绘制曲线时通常使用CV2.LINE_AA可以有更好的平滑效果。
1.
直线 cv2.line() 第一个参数为要绘图的图像实例 第二个参数为起点二元组 第三个参数为终点二元组 第四个参数为颜色 第五个参数为线宽
先用numpy构建一个512×512大小的纯白色图片对象img np.ones((512,512,3))
起点选在start(50,50)终点选择stop(300,300)颜色设置为红色color(0,0,255)线宽thick5。
import cv2
import numpy as np
print(VX公众号: 桔子code / juzicode.com)
print(cv2.__version__:,cv2.__version__)
img np.ones((512,512,3))
#img np.zeros((512,512)) #黑色背景
#img np.ones((512,512)) #白色背景
start(50,50)
stop(300,300)
color(0,0,255)
thick5
cv2.line(img,start,stop,color,thick)
cv2.imshow(img,img)
cv2.waitKey()2
.圆形cv2.circle() 第1参数是图像对象 第2个参数为圆心 第3个参数为半径 第4个参数为颜色 第5个参数为线条宽度如果使用-1会自动填充圆形的内部
import cv2
import numpy as np
img np.ones((512,512,3)) #白色背景
center(100,100)
radius50
color(0,255,255) #黄色
cv2.circle(img,center, radius, color, 5) #线条center(200,200)
cv2.circle(img,center, radius, color, -1) #填充
cv2.imshow(img,img)cv2.waitKey()3.
方形cv2.rectangle() 第1个参数为图像对象 第2个参数为方形左上角坐标 第3个参数为方形右下角坐标方形的宽高自动根据起始点坐标计算 第4个参数为颜色 第5个参数为线条宽度如果使用-1会自动填充圆形的内部
import cv2
import numpy as np
img np.ones((512,512,3)) #白色背景topleft(10,100)
downright(111,333)
color(255,0,0) #蓝色
cv2.rectangle(img,topleft, downright, color, 2) #线条topleft(300,100)
downright(500,300)
color(0,255,0) #蓝色
cv2.rectangle(img,topleft, downright, color, -1) #填充cv2.imshow(juzicode,img)cv2.waitKey()4
多边形cv2.polylines()
import cv2
import numpy as np
img np.ones((512,512,3)) #白色背景
color(0,255,0) #绿色
#五角星
pts np.array([[70,190],[222,190],[280,61],[330,190],[467,190],[358,260],[392,380],[280,308],[138,380],[195,260]])
pts pts.reshape((-1,1,2)) #reshape为10x1x2的numpy
print(pts.shape) # (10, 1, 2)
cv2.polylines(img,[pts],True,color,5)
#方形
pts np.array([[10,50],[100,50],[100,100],[10,100]])
pts pts.reshape((-1,1,2))#-1 表示自适应该维度大小。这里 reshape 的第一个参数为-1, 表明这个参数是根据后面的维度1X2的计算出来的。
比如如果一个 array有 NX1X2个元素那么它的 reshape(-1, 1, 2) 方法将返回一个 shape (n, 1, 2) 的 ndarray.cv2.polylines(img,[pts],True,color,3)cv2.imshow(juzicode.com,img)
cv2.waitKey()5.
输出文字cv2.putText() 第1个参数为图像对象 第2个参数为要输出的字符串 第3个参数为起始点位置 第4个参数为字体 第5个参数为字体大小 第6个参数为颜色 第7个参数为线条宽度默认为1 第8个参数为线型默认为LINE8
import cv2
import numpy as np
img np.ones((512,512,3)) #白色背景
text VX:juzicode
start (10,200)
font cv2.FONT_HERSHEY_SIMPLEX
fontscale 2
color(0,0,255) #红色
thick 2
linetype cv2.LINE_AA
cv2.putText(img,text,start, font, fontscale, color,thick,linetype)cv2.imshow(juzicode.com,img)
cv2.waitKey()OpenCV中并没有包含中文字体一个变通的方法是通过pillow转换后显示中文
import cv2
import numpy as np
from PIL import Image,ImageDraw,ImageFont
img np.full((512,512,3),255,np.uint8) #白色背景
img_pil Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))text VX:图片code
start (10,200) #起始位置
fonttype msyh.ttc #微软雅黑字体和具体操作系统相关
fontscale 30 #字体大小
font ImageFont.truetype(fonttype,fontscale)
draw ImageDraw.Draw(img_pil)
draw.text(start,text,fontfont,fill(255,0,0)) #PIL中BGR(255,0,0)表示红色
img_ocv np.array(img_pil) #PIL图片转换为numpy
img cv2.cvtColor(img_ocv,cv2.COLOR_RGB2BGR) #PIL格式转换为OpenCV的BGR格式
cv2.imshow(tupian,img)
cv2.waitKey()cv2.cvtColor(p1,p2) 是颜色空间转换函数p1是需要转换的图片
p2是转换成何种格式。
cv2.COLOR_BGR2RGB 将BGR格式转换成RGB格式
cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片