Python CV2的基本操作
cv2.imread(filepath,flags)
filepath:要读入图片的完整路径
flags:读入图片的标志
- cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
- cv2.IMREAD_GRAYSCALE:读入灰度图片
- cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
返回值是一个numpy对象
cv2.namedWindow(窗口名,属性)
窗口名是一个字符串,属性包括
cv2.WINDOW_AUTOSIZE:根据图像大小自动创建大小
cv2.WINDOW_NORMAL:窗口大小可调整
cv2.imshow(wname,img) 展示图片
第一个参数是显示图像的窗口的名字
第二个参数是要显示的图像(imread读入的图像),窗口大小自动调整为图片大小。
cv2.imwrite保存图片
使用函数cv2.imwrite(file,img,num)保存一个图像。
第一个参数是要保存的文件名,
第二个参数是要保存的图像。
可选的第三个参数,它针对特定的格式:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。
- cv2.IMWRITE_JPEG_QUALITY类型为 long ,必须转换成 int
- cv2.IMWRITE_PNG_COMPRESSION, 从0到9 压缩级别越高图像越小
cv2.imwrite('1.png',img, [int( cv2.IMWRITE_JPEG_QUALITY), 95]) cv2.imwrite('1.png',img, [int(cv2.IMWRITE_PNG_COMPRESSION), 9])
cv2.flip 翻转图片
使用函数cv2.flip(img,flipcode)翻转图像,flipcode控制翻转效果。
- flipcode = 0:沿x轴翻转
- flipcode > 0:沿y轴翻转
- flipcode < 0:x,y轴同时翻转
cv2.putText 在图像上输出文字
putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
- img: 图像
- text:要输出的文本
- org: 文字的起点坐标 第一个是宽 第二个是高 以左上角为参考
- fontFace: 字体
- fontScale: 字体大小
- color: 字体颜色
- thickness: 字图加粗
image.pngimport cv2 img = cv2.imread("01.jpg") cv2.putText(img,"Print some text to img",(100,100),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255)) cv2.imshow("img",img) cv2.waitKey()
基本绘图
===============================接下来是视频操作
cv2.VideoCapture获取摄像头
VideoCapture()中参数是0,表示打开笔记本的内置摄像头,
参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")
cap.isOpened()函数
返回true表示成功,false表示不成功
cap.read()
#正常使用 ret,frame = cap.read()
cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。
其中
ret
是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。
frame
就是每一帧的图像,是个三维矩阵。
cv2.waitKey(1)
#正确使用 c = cv2.waitKey(1)
表示等待键盘输入
参数是1,表示延时1ms切换到下一帧图像,对于视频而言;没有按键返回-1
参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,;
参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。
c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27
ord() 函数 返回对应的 ASCII 数值
cap.release()
释放摄像头的资源
网友评论