图像的读取与显示¶
1. 图像读取¶
① 图像读取入口参数:
- cv2.IMREAD_COLOR:彩色图像
- cv2.IMREAD_GRAYSCALE:灰度图像
In [1]:
import cv2 #opencv的缩写为cv2
import matplotlib.pyplot as plt # matplotlib库用于绘图展示
import numpy as np # numpy数值计算工具包
# 魔法指令,直接展示图,Jupyter notebook 特有
%matplotlib inline
In [2]:
img = cv2.imread('01_Picture/01_cat.jpg')
print(type(img)) # img 的类型为 numpy.ndarray 类型
img # uint8 的取值范围在 0-255 之间
<class 'numpy.ndarray'>
Out[2]:
array([[[142, 151, 160],
[146, 155, 164],
[151, 160, 169],
...,
[156, 172, 185],
[155, 171, 184],
[154, 170, 183]],
[[107, 118, 126],
[112, 123, 131],
[117, 128, 136],
...,
[155, 171, 184],
[154, 170, 183],
[153, 169, 182]],
[[108, 119, 127],
[112, 123, 131],
[118, 129, 137],
...,
[154, 170, 183],
[153, 169, 182],
[152, 168, 181]],
...,
[[162, 186, 198],
[157, 181, 193],
[142, 166, 178],
...,
[181, 204, 206],
[170, 193, 195],
[149, 172, 174]],
[[140, 164, 176],
[147, 171, 183],
[139, 163, 175],
...,
[167, 187, 188],
[123, 143, 144],
[104, 124, 125]],
[[154, 178, 190],
[154, 178, 190],
[121, 145, 157],
...,
[185, 198, 200],
[130, 143, 145],
[129, 142, 144]]], dtype=uint8)
2. 图像显示¶
2.1 图像显示(普通方法)¶
In [3]:
# opencv 默认读取格式是 BGR 格式,matplotlib 或其他库的读取格式可能是 RGB 的
# opencv 读取并用 opencv 自带的展示函数不需要进行通道转换,但 opencv 读取后用其他库展示图片需要通道转换
# 图像显示时,可以创建多个窗口
# 第一个入口参数为展示图像窗口的名字
# 第二个入口参数为展示图像窗口中所展示的图像
img = cv2.imread('01_Picture/01_cat.jpg')
cv2.imshow('image_cat',img)
# 等待时间,毫秒级,0表示任意键终止,5000ms表示5s
cv2.waitKey(5000)
# 销毁图像窗口
cv2.destroyAllWindows()
2.2 图像显示(函数方法)¶
In [4]:
# 绘图显示(封装函数)
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv_show('image_cat',img)