作者:关注丑开 | 来源:互联网 | 2023-09-25 14:15
目录imwrite函数功能函数原型函数参数编码参数示例代码代码结果imwrite函数功能用于将图像保存到指定的文件,可以为各种格式的图像。函数原型boolcv::imwrite(constString&filename,I
目录
- imwrite函数功能
- 函数原型
- 函数参数
- 编码参数
- 示例代码
- 代码结果
imwrite函数功能
用于将图像保存到指定的文件,可以为各种格式的图像。
函数原型
bool cv::imwrite(const String & filename,
InputArray img,
const std::vector & params = std::vector()
)
函数参数
-
filename
:需要保存图像的文件名,要保存图片为哪种格式,就带什么后缀。
-
img
:要保存的图像。
-
params
:表示为特定格式保存的参数编码。
注意:
imwrite函数是基于文件扩展名选择图像的格式。通常,使用此功能只能保存8位单通道或3通道(带有BGR通道顺序)图像,但有以下例外:
- 对于PNG,JPEG2000和TIFF格式,可以保存16位无符号(CV_16U)图像。
- 32位浮点(CV_32F)图像可以保存为PFM,TIFF,OpenEXR和Radiance HDR格式; 使用LogLuv高动态范围编码(每像素4个字节)保存3通道(CV_32FC3)TIFF图像
- 可以使用此功能保存带有Alpha通道的PNG图像。为此,创建8位(或16位)4通道图像BGRA,其中alpha通道最后。完全透明的像素应该将alpha设置为0,完全不透明的像素应该将alpha设置为255/65535。
如果格式,深度或通道顺序不同,请在保存之前使用Mat :: convertTo和cv :: cvtColor进行转换。或者,使用通用FileStorage I / O函数将图像保存为XML或YAML格式。
编码参数
IMWRITE_JPEG_QUALITY Python:cv.IMWRITE_JPEG_QUALITY
|
对于JPEG,它可以是从0到100的质量(越高越好)。默认值为95。 |
IMWRITE_JPEG_PROGRESSIVE Python:cv.IMWRITE_JPEG_PROGRESSIVE
|
启用JPEG功能,0或1,默认为False。 |
IMWRITE_JPEG_OPTIMIZE Python:cv.IMWRITE_JPEG_OPTIMIZE
|
启用JPEG功能,0或1,默认为False。 |
IMWRITE_JPEG_RST_INTERVAL Python:cv.IMWRITE_JPEG_RST_INTERVAL
|
JPEG重启间隔,0 - 65535,默认为0 - 无重启。 |
IMWRITE_JPEG_LUMA_QUALITY Python:cv.IMWRITE_JPEG_LUMA_QUALITY
|
单独的亮度质量等级,0 - 100,默认为0 - 不使用。 |
IMWRITE_JPEG_CHROMA_QUALITY Python:cv.IMWRITE_JPEG_CHROMA_QUALITY
|
单独的色度质量等级,0 - 100,默认为0 - 不使用。 |
IMWRITE_PNG_COMPRESSION Python:cv.IMWRITE_PNG_COMPRESSION
|
对于PNG,它可以是从0到9的压缩级别。值越高意味着更小的尺寸和更长的压缩时间。如果指定,则策略更改为IMWRITE_PNG_STRATEGY_DEFAULT(Z_DEFAULT_STRATEGY)。默认值为1(最佳速度设置)。 |
IMWRITE_PNG_STRATEGY Python:cv.IMWRITE_PNG_STRATEGY
|
其中一个品种:: ImwritePNGFlags,默认为IMWRITE_PNG_STRATEGY_RLE。 |
IMWRITE_PNG_BILEVEL Python:cv.IMWRITE_PNG_BILEVEL
|
二进制级别PNG,0或1,默认为0。 |
IMWRITE_PXM_BINARY Python:cv.IMWRITE_PXM_BINARY
|
对于PPM,PGM或PBM,它可以是二进制格式标志,0或1.默认值为1。 |
IMWRITE_EXR_TYPE Python:cv.IMWRITE_EXR_TYPE
|
|
IMWRITE_WEBP_QUALITY Python:cv.IMWRITE_WEBP_QUALITY
|
覆盖EXR存储类型(默认为FLOAT(FP32))
对于WEBP,它可以是1到100的质量(越高越好)。默认情况下(不带任何参数),如果质量高于100,则使用无损压缩。
|
IMWRITE_PAM_TUPLETYPE Python:cv.IMWRITE_PAM_TUPLETYPE
|
对于PAM,将TUPLETYPE字段设置为为格式定义的相应字符串值。 |
IMWRITE_TIFF_RESUNIT Python:cv.IMWRITE_TIFF_RESUNIT
|
对于TIFF,用于指定要设置的DPI分辨率单位; 请参阅libtiff文档以获取有效值。 |
IMWRITE_TIFF_XDPI Python:cv.IMWRITE_TIFF_XDPI
|
对于TIFF,用于指定X方向DPI。 |
IMWRITE_TIFF_YDPI Python:cv.IMWRITE_TIFF_YDPI
|
对于TIFF,用于指定Y方向DPI。 |
IMWRITE_TIFF_COMPRESSION Python:cv.IMWRITE_TIFF_COMPRESSION
|
对于TIFF,用于指定图像压缩方案。请参阅libtiff以获取与压缩格式对应的整数常量。注意,对于深度为CV_32F的图像,仅使用libtiff的SGILOG压缩方案。对于其他支持的深度,可以通过此标志指定压缩方案; LZW压缩是默认值。 |
IMWRITE_JPEG2000_COMPRESSION_X1000 Python:cv.IMWRITE_JPEG2000_COMPRESSION_X1000
|
对于JPEG2000,用于指定目标压缩率(乘以1000)。该值可以是0到1000.默认值是1000。 |
示例代码
#include
#include
int main()
{
cv::Mat srcImage;
//加载图像
srcImage = cv::imread("image.jpg",1);
if (srcImage.empty())
{
std::cout <<"图像加载失败!" <
代码结果
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
原文地址:https://blog.csdn.net/mars_xiaolei/article/details/62233900