热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenCV:imwrite函数保存图片问题

目录imwrite函数功能函数原型函数参数编码参数示例代码代码结果imwrite函数功能用于将图像保存到指定的文件,可以为各种格式的图像。函数原型boolcv::imwrite(constString&filename,I

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 <<"图像加载失败!" <

代码结果

OpenCV:imwrite函数保存图片问题

OpenCV:imwrite函数保存图片问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文地址:https://blog.csdn.net/mars_xiaolei/article/details/62233900

推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
author-avatar
关注丑开
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有