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


前言

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


一、基本概念

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

二、操作步骤

1.包含头文件

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#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的读取、显示、保存图像教程内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值