21xrx.com
2025-03-17 14:14:38 Monday
文章检索 我的文章 写文章
OpenCV图像保存函数
2023-08-14 08:28:33 深夜i     21     0
OpenCV 图像 保存函数

OpenCV是一个开源的计算机视觉库,提供了很多用于处理图像和视频的函数和工具。其中之一就是图像保存函数,它能够将处理过的图像保存到计算机硬盘上。

OpenCV提供了两个主要的图像保存函数:imwrite和imencode。

imwrite函数用于将图像保存到硬盘上。它的语法如下:

bool imwrite(const string& filename, InputArray image, const vector<int>& params = vector<int>());

其中,filename是保存图像的文件名;image是要保存的图像;params是一个可选的参数,用于指定保存图像的格式和压缩等级。

这个函数的返回值是一个bool值,表示保存是否成功。如果成功保存图像,则返回true;否则返回false。

下面是一个示例代码,演示了如何使用imwrite函数保存一张图像:

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
  // 读取图像
  Mat image = imread("input.jpg");
  // 检查图像是否正确读取
  if (image.empty())
    cout << "图像读取失败!" << endl;
    return -1;
  
  // 保存图像
  bool saved = imwrite("output.jpg", image);
  // 检查图像是否成功保存
  if (saved)
    cout << "图像保存成功!" << endl;
   else
    cout << "图像保存失败!" << endl;
  
  return 0;
}

imencode函数也可以用于图像保存,但它保存的是编码后的图像数据,而非直接保存为图像文件。这个函数的语法如下:

bool imencode(const string& ext, InputArray image, vector<uchar>& buf, const vector<int>& params = vector<int>());

其中,ext是保存图像的扩展名,比如.jpg;image是要保存的图像;buf是保存编码后图像数据的缓冲区;params是一个可选的参数,用于指定保存图像的格式和压缩等级。

这个函数的返回值是一个bool值,表示保存是否成功。如果成功保存图像,则返回true;否则返回false。

总之,OpenCV提供了imwrite和imencode函数来保存图像。无论是保存为文件还是保存为编码后的数据,都能满足不同的需求。通过使用这些函数,我们可以方便地将处理过的图像保存到硬盘上,以便后续使用和分析。

  
  

评论区

请求出错了