OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android、Mac OS操作系统上。OpenCV由一系列C函数和少量C++类构成,同时提供Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
读入一张图片。
cv2.imread(filepath, mode)
- filepath:图像路径,通常支持jpg、png、bmp、tiff等格式文件
- mode:图片读入的模式,通常有三种取值
a)cv.IMREAD_COLOR,对应值为 1,表示以彩色图方式读取图片。忽略图像的透明度。该模式为默认模式。
b)cv.IMREAD_GRAYSCALE,对应值为 0,以灰度图方式读取图片。
c)cv.IMREAD_UNCHANGED,对应值为 -1,以含Alpha通道的方式加载图像。Alpha通道:“非彩色”通道,指一张图片的透明和半透明度。
imread函数返回一个BGR形式的图像对象,其类型为一个numpy数组。
# 读入lena这张图片,输出它的类型、shape值、图像信息。
import cv2 #opencv读取的格式为BGR
img = cv2.imread("lena.jpg")
print(type(img))
print(img.shape)
结果:
<class 'numpy.ndarray'>
(263, 263, 3)
print(img)
结果:因为没有指定mode,其默认为1,故返回一个三维数组(由像素点组成的矩阵)。
array([[[126, 134, 223],
[125, 133, 222],
[124, 133, 223],
...,
[128, 148, 235],
[120, 148, 232],
[ 90, 118, 202]],
[[127, 137, 225],
[126, 136, 224],
[124, 133, 223],
...,
[135, 150, 236],
[131, 152, 234],
[ 96, 117, 198]],
[[124, 135, 225],
[123, 137, 226],
[121, 134, 226],
...,
[144, 150, 233],
[138, 143, 222],
[ 96, 100, 178]],
...,
[[ 56, 22, 87],
[ 60, 26, 91],
[ 55, 22, 89],
...,
[ 85, 67, 156],
[ 87, 71, 165],
[ 80, 67, 165]],
[[ 51, 17, 82],
[ 63, 29, 94],
[ 58, 25, 92],
...,
[ 85, 68, 159],
[ 90, 76, 172],
[ 88, 75, 177]]], dtype=uint8)
- 图片的文件名不能含有中文,否则会报错。
- 在不指定mode的默认情况下,imread函数会去除图像的Alpha通道信息。