(一)安装:
pip install opencv-python
(二)导入:
import cv2
(三)查看版本:
cv2.__version__
(四)读取图片:
cv2.imread(filename, flags=None)
- filename:图片文件的路径;
- flags:读取方式
2.1 flags=1:读取彩色图,默认为BGR方法;
2.2 flags=0:读取为灰度图;
2.3 flags=-1:读取为BGRA,即包含透明度(如一些PNG图片);
返回图像矩阵,type为<class ‘numpy.ndarray’>;
例如:
import cv2
image1 = cv2.imread('./sample.jpg', 1)
image2 = cv2.imread('./sample.jpg', 0)
image3 = cv2.imread('./sample.jpg', -1)
(五)显示图片:
cv2.imshow(winname, mat)
- winname:创建窗口的名称;
- mat:图像,type为<class ‘numpy.ndarray’>;
注意这里只执行一次 imshow 函数,要使窗口持续显示,需要另外两个函数:
- cv2.waitKey(delay):这是一个和键盘绑定的函数,它的作用是等待一个键盘的输入,只有执行键盘输入,程序才会在延迟 delay 毫秒后继续进行,在此之前窗口一直存在;
- cv2.destroyALLWindows(): 销毁我们创建的所有窗口;
例如:
import cv2
image1 = cv2.imread('./sample.jpg', 1)
image2 = cv2.imread('./sample.jpg', 0)
image3 = cv2.imread('./sample.jpg', -1)
cv2.imshow('flags=1', image1)
cv2.imshow('flags=0', image2)
cv2.imshow('flags=-1', image3)
cv2.waitKey(0)
cv2.destroyAllWindows()
(六)色彩空间转换:
cv2.cvtColor(src, code, dst=None, dstCn=None)
- src:原图像;
- code:色彩空间转换类型,如 cv2.COLOR_BGR2GRAY;
- dst:目标图像矩阵,与原图像大小一致(也是返回值);
- dstCn:指定目标图像通道数(默认None,则会根据src、code自动计算);
例如:
import cv2
image = cv2.imread('./sample.jpg', 1)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow('sample', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
(七)保存图片:
cv2.imwrite(filename, img, params=None)
- filename:输出图像路径;
- img:需要保存的图片;
- params:对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3;
例如:
import cv2
image = cv2.imread('./sample.jpg', 1)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite()
(八)读取视频:
cv2.VideoCapture(filename)
其中 filename 可以是视频路径,也可以是整数(表示摄像头索引,前置摄像头默认为 0);
例如:
import cv2
from time import sleep
name = 'sample'
cap = cv2.VideoCapture('./test.avi')
while cap.isOpened():
sleep(0.1)
ret, frame = cap.read()
cv2.waitKey(10)
cv2.imshow(name, frame)
if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1:
# 点x退出
break
cap.release()
cv2.destroyAllWindows()