注:1.要导入cv2库,有的参数也需要加cv2.
2.函数中[ ]中的内容是可选参数
读取图片
函数名:cv2.imread(path [, flags])
返回值:返回读取到的图像,BGR
参数:
path:图片的路径,注意 \ 用 \ \ 代替,或者用 /
flags:指定加载图像的颜色类型的标志(以下可以用数字,也可以给用括号中的内容)
0(cv2.IMREAD_GRAYSCALE):返回灰色图像
1(cv2.IMREAD_COLOR):返回3通道彩色图像(常用、默认值)
-1 (cv2.IMREAD_UNCHANGED):按原样返回加载的图像(使用 alpha 通道)
显示图片
函数名:cv2.imshow(winname, mat)
返回值:None
参数:
winname:窗口的名字
mat:要显示的图像
延长窗口时间
函数名:cv2.waitKey([delay])
返回值:返会键值对应的ASCII码
参数:按键值(整数)
delay:以毫秒为单位的延迟,0代表无限延迟
🎈如果在指定的时间过去之前没有按下任何键,则返回被按下键的代码或 -1
🎈此函数应跟随 imshow 函数,该函数显示指定毫秒的图像。否则,它不会显示图像。例如,waitKey(0) 将无限显示窗口,直到有任何按键(适用于图像显示), waitKey(25) 将显示一帧 25 毫秒,之后显示将自动关闭。(如果你把它放在一个循环中读取视频,它会逐帧显示视频)
销毁窗口
函数名:cv2.destroyAllWindows()
返回值:None
简介:关闭窗口并取消分配任何相关的内存使用
保存图片
函数名:cv2.imwrite(filename, img[, params])
返回值:None
简介:关闭窗口并取消分配任何相关的内存使用
参数:
filename:要保存图片的名字及格式,比如’phtot.jpg’
img:需要保存的图像
图像转换
函数名:cv2.cvtColor(src, code[, dst[, dstCn]])
返回值:新的图像
参数:
src:输入的图像
code:详情见此
代码及效果展示
读取显示图片
import cv2
img = cv2.imread('lena.jpg', 1) #1也可以不填
while True:
cv2.imshow('photo', img)
key = cv2.waitKey(0)
if key == ord('q'):
break
cv2.destroyAllWindows()
![](https://i-blog.csdnimg.cn/blog_migrate/9768c0afa18f21ea6870c3cb7d1fb5ab.png)
灰度转换
将三通道图像转化为单通道图像
公式:3通道—>1: GRAY =B*0.114+G 0.587 +R0.299
单通道—>3通道: R=G=B= GRAY; A=0(阿尔法通道)
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('lena.jpg')
shape = img.shape
print(shape)
#(512, 512, 3)
if shape[2] == 3 or shape[2] == 4:
img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('img1', img1)
cv2.waitKey(0)
![](https://i-blog.csdnimg.cn/blog_migrate/071f0b47504fff52b5acdda6b198fa17.png)
颜色转换
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('lena.jpg')
img_cv = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_numpy = img[:, :, ::-1]
plt.subplot(1, 3, 1)#一行3列的第1张图
plt.imshow(img)#BGR
plt.subplot(1, 3, 2)#一行3列的第2张图
plt.imshow(img_cv)#RGB
plt.subplot(1, 3, 3)#一行3列的第3张图
plt.imshow(img_numpy)#RGB
plt.show()
![](https://i-blog.csdnimg.cn/blog_migrate/0a5decb6956eac03928e9ab4b5fec8f0.png)