C++opencv imwrite()详细介绍
时间: 2023-11-04 09:07:12 浏览: 139
C++ opencv
`imwrite()` 是 OpenCV 中一个用于将图像保存到文件的函数。它的语法如下:
```cpp
bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>())
```
其中,参数含义如下:
- `filename`:保存文件的文件名(包括路径)。
- `img`:要保存的图像。可以是 `Mat` 或 `UMat` 类型的对象,也可以是其他支持的输入类型。
- `params`:保存参数,是一个可选的向量,用于指定保存格式和压缩等级。默认情况下,参数为空向量。
`imwrite()` 函数返回一个 `bool` 值,表示保存是否成功。
下面是一些常用的保存参数:
- 对于 BMP、JPEG、JPEG 2000、PNG 和 WEBP 格式,可以指定压缩级别来控制图像文件的大小。压缩级别的范围是 0 到 100,0 表示最小的文件大小而质量最差,100 表示最高的质量而文件大小最大。
- 对于 PPM、PGM 和 PBM 格式,可以指定二进制或 ASCII 模式。
- 对于 TIFF 格式,可以指定压缩算法、压缩级别、像素顺序和其他选项。
下面是一个使用 `imwrite()` 函数将图像保存为 JPEG 格式的示例:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("input.jpg");
imwrite("output.jpg", img, {CV_IMWRITE_JPEG_QUALITY, 80});
return 0;
}
```
这个示例将输入图像 `input.jpg` 读入为 `Mat` 对象,然后使用 `imwrite()` 函数将该图像保存为 JPEG 格式的文件 `output.jpg`,并设置压缩质量为 80。
阅读全文