基础绘图部分
我选用的教材是Opencv-Python-Torturial的翻译版本,这里给出基础部分的学习代码以及我的学习备注。
import numpy as np
import cv2
img = cv2.imread('untitled.png',0)
#这里后面的参数是如何读取这张图片,即以下三种情况
print(cv2.IMREAD_COLOR,'\n')#彩色图像,不包含透明度,值为1
print(cv2.IMREAD_GRAYSCALE,'\n')#灰度图像,值为0
print(cv2.IMREAD_UNCHANGED,'\n')#彩色图像,包含alpha通道,值为-1
cv2.imshow('image',img)#以默认方式展示一张图片
cv2.namedWindow('image2',cv2.WINDOW_NORMAL)#创建可以调节窗口大小的窗口
cv2.imshow('image2',img)#在可调节窗口显示图片
cv2.imwrite('gray.png',img)#保存灰度图像
cv2.namedWindow('example',cv2.WINDOW_NORMAL)
img2=np.zeros((512,512,3), np.uint8)
#np.zeros是得到一个用0填充的数组(512,512)是数组维度和每个元素的维度,即我们需要的全黑框的像素,3应该和BGR颜色有关
cv2.line(img2,(0,0),(511,511),(255,0,0),5)
#line(图像目标,起始坐标,结束坐标,线的颜色,线宽必须大于0(可以取到很大))
cv2.rectangle(img2,(384,0),(510,128),(0,255,0),0)
#rectangle(图像目标,↖坐标,↘坐标,线的颜色,-1为填充(>=0为线宽,可以取到很大))
cv2.circle(img2,(447,63), 63, (0,0,255), -1)
#circle(图像目标,圆心,半径,线的颜色,-1为填充(>=0为线宽,可以取到很大))
cv2.ellipse(img2,(256,256),(100,50),0,0,180,(0,255,255),-1)
#ellipse(图像目标,椭圆中心,椭圆长短轴长度(a,b),椭圆偏转角度,圆弧起始角度,圆弧结束角度,颜色,线宽与是否填充,线的类型(此处未引用))
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img2,'OpenCV',(10,500), font, 4,(255,255,255),2)
#putText(图像目标,显示的字,字的位置,字体类型,字号,字体颜色,粗细)
cv2.imshow('example',img2)
cv2.namedWindow('example2',cv2.WINDOW_NORMAL)
img3=np.zeros((512,512,3), np.uint8)
pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
#创建数组,数据类型为np.int32
pts=pts.reshape((-1,1,2))
#重组数组,-1是说根据后面两个维度,计算这个维度的值
cv2.polylines(img3, [pts], True, (0,255,0) ,0)
#画多条线,注意pts必须加[pts],否则画出来只是四个点
#polylines(图像目标,线的数组,是否闭合(false的话就不闭合),线的颜色,线宽(必须>=0))
cv2.imshow('example2',img3)
cv2.waitKey(0)
cv2.destroyAllWindows()
基础视频部分

本文详细介绍使用OpenCV进行基础绘图的方法,包括读取和显示图像、绘制线条、矩形、圆形、椭圆和多边形,以及如何添加文本到图像上。通过实例代码,读者可以快速掌握OpenCV绘图功能。
1753

被折叠的 条评论
为什么被折叠?



