背景介绍:opencv是专门用于图像处理的机器视觉库,python是用于快速开发的轻量级语言。opencv提供的接口可以让python轻松的对这个机器视觉库进行操作,进行图像处理。
Opencv中的Gui特性
开发环境为linux的Ubuntu使用的语言为python
1:图像的基本操作
首先我们先学习如何读入一幅图像
import numpy as np #导入Python的numpy库 import cv2 #导入Python的cv2库 img = cv2.imread("a.jpg")读入当前文件夹里面的a.jpg图像
显示一幅图像
cv2.imshow("image",img)#显示图片 第一个参数是图片的名字 cv2.waitKey(0) #检查特定键是否被按下 cv2.destroyAllWindows()#可以轻易删除我们建立的任何窗口
保持一幅图像
cv2.imwrite("image-new",img)
下面加载一幅图像按s保持退出,按ESC不保存退出
import numpy as np import cv2 img = cv2.imread("a.jpg") cv2.imshow("image",img) k = cv2.waitKey(0) if k == 27:#如果是ESC直接退出 cv2.destroyAllWindows() elif k == ord("s"):如果是s保存以后退出 cv2.imwrite("image-new.jpg",img) cv2.destroyAllWindows()
2:视频的基本操作
1:读取视频文件用VideoCapture("视频文件的名字")函数先捕获视频再用cap.read()来读取视频
2:显示视频用cv2.imshow("frame",gray)
3 : 保存视频用cv2.VideoWrite()这个函数实现。
import numpy as np#导入numpy模块 import cv2#导入cv2这个模块 cap = cv2.VideoCapture("baby.mp4")捕捉baby.mp4这个文件视频 fourcc = cv2.VideoWriter_fourcc(*"XVID")#用来确定视频的编码格式 out = cv2.VideoWriter("output.mp4", fourcc, 20.0, (640,480))#用来保存视频的函数包含了视频的大小格式名称等 while(cap.isOpened()):视频捕捉成功执行下面代码 ret, frame = cap.read()#读取视频 if ret == True:#如果读取成功 frame = cv2.flip(frame, 0)#获取帧数 out.write(frame)#保存帧数 cv2.imshow("frame", frame)#显示帧数 if cv2.waitKey(1) & 0xFF == ord("q"): break else: break cap.release()#关闭捕捉 out.release()#关闭保存 cv2.destroyAllWindows()#关闭所有窗口