C++ opencv imwrite参数
时间: 2023-06-28 16:12:02 浏览: 220
函数 `imwrite()` 是 OpenCV 库中的一个函数,用于将图像保存到磁盘中。它有以下几个参数:
- `const string& filename`:保存文件的名称和路径。
- `InputArray img`:要保存的图像。
- `const vector<int>& params`:保存图像时的可选参数。
其中,第三个参数 params 是可选的,用于设置保存图像时的格式、压缩等参数。常用的参数有:
- `IMWRITE_JPEG_QUALITY`:JPEG 图像的质量,范围从 0 到 100(默认值为 95)。
- `IMWRITE_PNG_COMPRESSION`:PNG 图像的压缩级别,范围从 0 到 9(默认值为 3)。
- `IMWRITE_WEBP_QUALITY`:WebP 图像的质量,范围从 1 到 100(默认值为 80)。
- `IMWRITE_PAM_TUPLETYPE`:PAM 图像的类型,可以是 `CV_8UC1`、`CV_16UC1`、`CV_32FC1` 等。
例如,将图像 img.png 保存为 JPEG 格式并设置质量为 80,可以使用以下代码:
```c++
Mat img = imread("img.png");
vector<int> params;
params.push_back(IMWRITE_JPEG_QUALITY);
params.push_back(80);
imwrite("img.jpg", img, params);
```
相关问题
C++opencv imwrite()详细介绍
`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。
c++ opencv 中imwrite函数
OpenCV中的imwrite函数是用于将图像保存为文件的函数。它是OpenCV图像处理库中非常重要的一个功能,也是比较常用的一个函数。
使用imwrite函数可以将OpenCV中的图像,保存为多种格式的图像文件,例如JPEG、PNG、BMP等。在使用imwrite函数时,需要指定要保存的图像的路径和文件名,另外需要提供一个Mat矩阵类型的参数,这个参数指定了要保存的图像数据。
imwrite函数的语法如下:
bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>())
其中,第一个参数filename是要保存的文件路径和文件名,第二个参数img是要保存的图像数据,最后一个参数params是一个向量参数,用于指定要保存的图像格式。
需要注意的是,当使用imwrite函数保存图像时,如果指定的路径不存在,则函数会自动创建该路径,以保证图像文件能够顺利保存。
总之,OpenCV中的imwrite函数是一个非常重要的图像处理函数,它可以将图像数据保存为多种不同格式的文件,并能够保证文件能够正常保存。因此,掌握imwrite函数,对于进行图像处理和图像分析工作的程序员来说是非常重要的。
阅读全文