cv2.imread()方法从指定的文件路径加载图像。如果图像不能被读取(因为权限不当、 文件丢失、 不支持或无效的格式),那么cv2.imread()方法返回一个空矩阵。
Python OpenCV
OpenCV是一个主要针对实时计算机视觉的编程函数库。它最初是由英特尔开发的,后来由Willow Garage支持,然后是Itseez。该库是跨平台的,在开源的BSD许可下可以免费使用。
我们将使用OpenCV(开源计算机视觉)打开一个图像。OpenCV-Python是为解决计算机视觉问题而设计的Python绑定库。
安装Python OpenCV
为了在Python中使用OpenCV,我们必须安装opencv-python模块:
python3 -m pip install opencv-python
# OR
pip install opencv-python
为了在我们的项目中使用opencv-python,我们必须在文件中导入cv2模块:
import cv2
Python cv2.imread()
要在Python中使用OpenCV读取图像,请使用cv2.imread()方法。 cv2.imread()方法从指定的文件中加载一个图像。
语法
cv2.imread(path, flag)
参数
path:它是一个字符串,代表要读取的图像的路径。
标志:它指定了应该如何读取图像。它的默认值是cv2.IMREAD_COLOR。 下面描述了所有三种类型的标志。
- cv2.IMREAD_COLOR:它定义了加载彩色图像。任何图像的透明度都会被忽略。这是一个默认的标志。另外,我们可以为这个标志传递整数值1。
- cv2.IMREAD_GRAYSCALE:它定义了以灰度模式加载图像。另外,我们也可以给这个标志的整数值为0。
- cv2.IMREAD_UNCHANGED。它解释了以这种方式加载图像,包括alpha通道。另外,我们也可以为这个标志传递整数值-1。
返回值
该方法返回一个从指定文件系统加载的图像。
例子
写下以下代码:
import cv2
path = 'info.png'
# Using cv2.imread() method
image = cv2.imread(path)
# Displaying the image
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destoryAllWindows()
输出
cv2.waitKey()函数等待用户按下任何键。
cv2.destroyAllWindows()函数关闭所有打开的窗口。
以灰度模式加载图像
如果你想将RGB图像转换为灰度图像,那么这将是有帮助的。
写下以下代码:
import cv2
path = 'info.png'
# Using cv2.imread() method
image = cv2.imread(path, 0)
# Displaying the image
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destoryAllWindows()
输出
cv2.IMREAD_UNCHANGED
我们可以将标志cv2.IMREAD_UNCHANGED传递给cv2.imread()函数。
import cv2
path = 'info.png'
# Using cv2.imread() method
image = cv2.imread(path, cv2.IMREAD_UNCHANGED)
# Displaying the image
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destoryAllWindows()
输出结果
你可以从输出中看到,图像没有变化。
结论
当读取一个彩色图像文件时,OpenCV imread()读取的是一个Numpy数组ndarray的行(高)x列(宽)x色(3)。颜色的顺序是BGR(蓝、绿、红)。
请注意,这里要注意的一点是,OpenCV是BGR,而Pillow是RGB。
这就是Python cv2 imread()方法的内容了。

