OpenCV的读取、显示、保存图像教程

文章目录

  • 前言
  • 一、基本概念
  • 二、操作步骤
    • 1.包含头文件
    • 2.读取图像
    • 3.显示图像
    • 4.保存图像
  • 总结


前言

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。


一、基本概念

在本教程中,您将学习如何:
从文件中读取图像(使用cv::imread)
在 OpenCV 窗口中显示图像(使用cv::imshow)
将图像写入文件(使用cv::imwrite)

二、操作步骤

1.包含头文件

#include 
#include 
#include 
#include <iostream>
using namespace cv;

在 OpenCV 3 中,我们有多个模块。每个人都负责不同的区域或图像处理方法。您已经可以在这些教程本身的用户指南的结构中观察到这一点。在使用其中任何一个之前,您首先需要包含头文件,其中声明了每个单独模块的内容。

您几乎总是最终会使用:

核心部分,这里定义了库的基本构建块
imgcodecs模块,提供读写功能
highgui模块,因为它包含在窗口中显示图像的功能
我们还包括iostream以方便控制台线路输出和输入。

通过using namespace cv;在下面声明 , 可以在不显式声明命名空间的情况下访问库函数。

2.读取图像

std::string image_path = samples::findFile("starry_night.jpg");
Mat img = imread(image_path, IMREAD_COLOR);
if(img.empty())//执行检查,图像加载正确。
{
    std::cout << "Could not read the image: " << image_path << std::endl;
    return 1;
}

我们从 OpenCV 样本中读取图像“starry_night.jpg”。为此,调用cv::imread函数使用第一个参数指定的文件路径加载图像。第二个参数是可选的,它指定了我们想要的图像格式。这可能是:

IMREAD_COLOR 加载 BGR 8 位格式的图像。这是此处使用的默认值。
IMREAD_UNCHANGED 按原样加载图像(如果存在,包括 alpha 通道)
IMREAD_GRAYSCALE 将图像加载为强度图像
读取图像数据后将存储在cv::Mat对象中。

3.显示图像

imshow("Display window", img);
int k = waitKey(0); // Wait for a keystroke in the window

调用cv::imshow函数显示图像。第一个参数是窗口的标题,第二个参数是将要显示的cv::Mat对象。

因为我们希望在用户按下某个键之前显示我们的窗口(否则程序会结束得太快),我们使用cv::waitKey函数,其唯一参数是等待用户输入的时间(以毫秒)。零意味着永远等待。返回值是按下的键。

4.保存图像

if(k == 's')
{
    imwrite("starry_night.png", img);
}

最后,如果按下的键是“s”键,图像将被写入文件。为此,调用了cv::imwrite函数,该函数具有文件路径和cv::Mat对象作为参数。


总结

以上就是OpenCV的读取、显示、保存图像教程内容。

你可能感兴趣的:(OpenCV,opencv,计算机视觉,图像处理)