先决条件:OpenCV 基础知识
在本文中,我们将尝试使用 OpenCV(开源计算机视觉)库打开图像。OpenCV 库支持以下类型的文件:
- Windows 位图 – *.bmp、*.dib
- JPEG 文件 – *.jpeg、*.jpg
- 便携式网络图形 – *.png
- WebP – *.webp
- Sun 栅格 – *.sr、*.ras
- TIFF 文件 – *.tiff、*.tif
- GDAL 支持的栅格和矢量地理空间数据
要在 python 中使用 OpenCV 库,我们需要安装这些库作为先决条件:
- Numpy 库 :计算机以矩阵的形式处理图像,其中使用 NumPy,OpenCV 在后台使用它。
- OpenCV python : OpenCV 库以前是 cv,但更新版本是 cv2。它用于处理图像和视频。
要安装这些库,我们需要在 cmd 中运行这些 pip 命令:
pip install opencv-python
pip install numpy
pip install matplotlib
在 OpenCV 中读取和显示图像的步骤是:
1. 使用 imread() 函数读取图像。
2. 使用 imshow() 函数创建 GUI 窗口并显示图像。
3. 使用函数 waitkey(0) 将图像窗口在屏幕上保持指定的秒数,o 表示直到用户关闭它,它将在屏幕上保持 GUI 窗口。
4. 使用 destroyAllWindows() 函数显示后,从内存中删除图像窗口。
让我们开始读取图像。使用 cv2.
要读取图像,请使用 cv2.imread() 方法。该方法从指定文件加载图片。如果无法读取图像(由于缺少文件、权限不正确、格式不受支持或无效),则此方法返回空矩阵。
语法: cv2.imread(path, flag)
参数:
path:表示要读取的图像路径的字符串。
flag:它指定了图像的读取方式。它的默认值为 cv2。IMREAD_COLOR返回值:该方法返回从指定文件加载的图片。
注意:
- 图像应该在工作目录中,或者应该给出图像的完整路径。
- 默认情况下,OpenCV 以 BGR(蓝、绿和红)格式存储彩色图像。
下面介绍了所有三种类型的标志:
CV2 的。IMREAD_COLOR:指定加载彩色图像。图像的任何透明度都将被忽略。它是默认标志。或者,我们可以为此标志传递整数值 1。
CV2 的。IMREAD_GRAYSCALE:指定以灰度模式加载图像。或者,我们可以为此标志传递整数值 0。
CV2 的。IMREAD_UNCHANGED:它指定加载图像,包括 Alpha 通道。或者,我们可以为此标志传递整数值 -1。
以下代码是使用 OpenCV 和 matplotlib 库函数读取图像并在屏幕上显示图像的实现。
Example #1 (使用 OpenCV) :
使用的图片是:
输出:
使用 cv2 读取 BGR 格式的图像
我们可以使用 shape 属性查看图像的 shape ,即宽度、高度和通道。
img.shape
Output:
(225, 225, 3)
Matplotlib 库使用 RGB 颜色格式读取彩色图像。下面我们演示了一个使用此库读取图像的示例。
示例#2
使用 cv2 读取图像并使用 matplotlib 显示将以 BGR 格式显示图片。
注意:请参阅 cv2 和 matplotlib 库读取的图像的颜色差异。因为 cv2 使用 BGR 颜色格式,而 matplotlib 使用 RGB 颜色格式。要将 BGR 转换为 RGB,我们可以使用一个函数:
示例#3:
输出:
BGR 颜色格式更改为 RGB 颜色格式
Example #4: 以灰度模式打开
输出:
灰度图像的形状可以使用 shape 属性显示。
img.shape
Output:
(225, 225)
使用 Python 在 OpenCV 中读取图像 – 常见问题解答
如何在 OpenCV Python 中读取图像
要在 Python 中使用 OpenCV 读取图像,请使用该 函数。此函数从指定的文件路径加载图像并将其作为 NumPy 数组返回。如果无法读取图像(由于缺少文件、权限不正确、格式不受支持或无效),则函数返回 .
cv2.imread()
None
import cv2 # Load an image image = cv2.imread('path_to_image.jpg')
我们如何使用 OpenCV 在 Python 中显示图像?
要使用 OpenCV 在 Python 中显示图像,请使用该 函数。此函数将创建一个可以显示图像的窗口。窗口会自动适应图像大小。
cv2.imshow()
import cv2 image = cv2.imread('path_to_image.jpg') cv2.imshow('Image Window', image) cv2.waitKey(0) # Wait for a key press to close the window cv2.destroyAllWindows() # Close the window
在 OpenCV 库中读取图像的方法是什么?
用于读取 OpenCV 库中图像的方法是 。它需要图像文件的路径作为参数,并需要一个指定图像读取方式的标志(可选):
cv2.imread()
cv2.IMREAD_COLOR
:加载彩色图像。将忽略任何透明度(默认)。cv2.IMREAD_GRAYSCALE
:以灰度模式加载图像。cv2.IMREAD_UNCHANGED
:按原样加载图像,包括 Alpha 通道。# Example of reading an image in grayscale gray_image = cv2.imread('path_to_image.jpg', cv2.IMREAD_GRAYSCALE)
如何使用 OpenCV 读取和保存图像
使用 OpenCV 读取图像后,您可以使用该函数保存它 。此函数将图像写入指定文件。
cv2.imwrite()
import cv2 # Read an image image = cv2.imread('path_to_image.jpg') # Save the image cv2.imwrite('path_to_output.jpg', image)
如何在 Python 中从路径读取图像
要使用 OpenCV 从 Python 中的路径读取图像,您只需将 函数与图像的路径一起使用即可。确保路径正确,并且 OpenCV 支持图像文件格式。
cv2.imread()
import cv2 # Specify the path to your image image_path = 'path_to_image.jpg' # Load the image image = cv2.imread(image_path) # Check if image was loaded properly if image is not None: cv2.imshow('Loaded Image', image) cv2.waitKey(0) cv2.destroyAllWindows() else: print("Error loading the image")
OpenCV 提供的这些方法和函数使在 Python 中处理图像变得简单明了,从加载和显示到保存它们。