Logo
Section 1 / 3

读取图像

学习如何使用 OpenCV 读取图像。

导入

读取图像

学习如何使用 OpenCV 读取图像。

头文件和命名空间

C++中的头文件用于声明在其他源文件中定义的函数、类和变量。头文件提供了一种将程序的接口与实现分离的方式,使大型代码库更易于组织和维护。本课程仅使用一个头文件 opencv.hpp。该头文件包含了OpenCV中所有必要的函数。

要包含代码,我们需要使用 include 关键字,并指定文件路径。以下代码中,头文件位于 opencv2 文件夹内。

1#include <opencv2/opencv.hpp>

命名空间是为变量、函数等提供作用域的声明。在每个作用域中,一个名称只能代表一个变量。同一作用域内不能有两个同名的变量。使用命名空间可以解决这个问题。我们可以在不同的命名空间中创建两个同名的变量或函数。

本课程将使用两个命名空间:cv 和 std。

本课程的目标是读取一张图像,显示它,并控制显示时间。但在开始之前,我们需要导入用于读取和处理媒体文件的头文件。

读取图像

要读取图像,首先需要获取图像的路径。我们将路径存储为字符串变量。

1std::string path = "/usercode/photo.jpg";

使用 imread(imagePath) 函数来读取图像。我们将 imagePath 作为参数传入该函数。接着,将图像数据存储在一个名为 image 的对象中,它是 Mat 类的一个实例。Mat 是一个n维数组类,用作图像的容器。

1cv::Mat img = cv::imread(path);

显示图像

要显示图像,需使用OpenCV库中的 imshow(name, ReadFile) 方法。

  • 第一个参数 name 是图像将被显示的窗口名称。
  • 第二个参数 ReadFile 是包含要显示图像的 Mat 对象的名称。
1cv::imshow("Image", img);

使用 waitKey()

当我们仅运行上述代码时,会发现图像打开后立即关闭。为了使图像显示一段时间,我们使用 waitKey(int) 方法。它接收一个以毫秒为单位的时间参数,表示图像将显示的时间长度。如果传入 0 作为参数,图像将无限期显示。语法如下:

1cv::waitKey(0);

读取图像的完整代码

读取图像的代码应如下所示:

No configuration found for ID: 17c11490ede88d2d4807ce744ed8b3dfff04cd04dd8f570d957e481a9691f960

我们已成功读取并显示了一张图像。

C++ OpenCV 入门

阅读视频