21xrx.com
2024-12-28 12:42:28 Saturday
登录
文章检索 我的文章 写文章
C++ Opencv 图片读取教程
2023-07-05 00:01:20 深夜i     --     --
C++ Opencv 图片读取 教程

如果你正在学习C++语言并对图像处理感兴趣,那么你肯定会涉及到Opencv库。Opencv库是一个用于计算机视觉和机器学习的开源库,它提供了许多用于处理图像和视频的函数和算法。

在开始使用Opencv库之前,我们需要了解如何读取图像。在这篇文章中,我们将提供C++语言中使用Opencv库读取图像的教程。

1. 安装Opencv库

在开始编码之前,必须安装Opencv库。如果你还没有安装,请访问官方网站下载适合你的操作系统的库。

2. 包含头文件和命名空间

首先,我们需要包含必要的头文件。在这个例子中,我们使用cv::Mat和cv::imread函数,因此我们需要包含"opencv2/opencv.hpp"头文件。另外一个必要的头文件是"opencv2/highgui/highgui.hpp",它提供了显示图形用户界面(GUI)的功能。

我们也应该使用cv命名空间。通过cv命名空间可以避免函数名称冲突。

代码示例:


#include "opencv2/opencv.hpp"

#include "opencv2/highgui/highgui.hpp"

using namespace cv;

3. 读取图像

c++中使用 Opencv库读取图像非常简单。使用cv::imread函数读取任何一张图片,该函数的第一个参数是图片路径,第二个参数是一个整数,表示图像应以何种方式加载。这个参数是可选的,如果不指定,它将被默认设置为CV_LOAD_IMAGE_COLOR。

图像的路径应该是绝对路径,或者是相对路径(相对于你的工程文件所在的路径)。

代码示例:


Mat image;

image = imread("test.jpg", CV_LOAD_IMAGE_COLOR);

4. 显示图像

完成了图像的读取后,我们可以使用cv::imshow函数显示图像了。该函数的第一个参数是窗口名称,第二个参数是图像矩阵。

代码示例:


namedWindow("Display window", WINDOW_AUTOSIZE);//窗口名称

imshow("Display window", image);// 窗体中显示的图片

5. 等待用户操作

如果我们不在主函数的结尾添加一条cv::waitKey(0),则窗口将很快关闭并退出程序。cv::waitKey函数会等待用户按下一个键才能关闭窗口。当你按下键盘上的任何键时,窗口将被关闭并退出程序。

代码示例:


waitKey(0);//按下一个任意键退出

完整的代码示例:


#include "opencv2/opencv.hpp"

#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main(int argc, char** argv) {

  Mat image;

  image = imread("test.jpg", CV_LOAD_IMAGE_COLOR);

  if(! image.data ) {

    printf("无法读取图像文件 \n");

    return -1;

  }

  namedWindow("Display window", WINDOW_AUTOSIZE);//创建窗体

  imshow("Display window", image);// 窗体中显示的图片

  waitKey(0);//按下一个任意键退出

  return 0;

}

总结:

在C++中使用Opencv库读取图像很简单。需要注意的是,我们必须确保图像路径正确,并且知道读取、显示图像的顺序。一个完整的程序包括包含头文件、命名空间、读取图像、显示图像、等待用户操作这些步骤。通过这篇教程,你可以开始使用Opencv库读取并处理你的图像啦!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复