利用OpenCV的函数imwrite()保存图像到硬盘

OpenCV学习笔记 使用C++和opencv进行图像处理 阅读详情

在图像处理的操作中,我们不仅要经常显示图像,还需要保存图像到硬盘或其它存储设备,可以利用函数imwrite()实现。

函数imwrite()的原型如下:
C++原型:

bool cv::imwrite(const String & filename,
                 InputArray img,
                 const std::vector< int > & params = std::vector< int >())

Python原型:

	retval=cv.imwrite(filename, img[, params])

参数filename表示写入硬盘文件的路径、文件名和扩展名。

参数img表示待写入的源图像。

参数params是可选参数表示图片保存时的一些属性设置。
默认情况下将图像保存为8位数据深度的单通道图像或BGR图像。

  • 当图像的数据深度比较特殊时,可以设置这个参数进行相关保存。 不同数据类型的图像能够保存的格式如下:
  • 数据类型为unit16(即(CV_16U)的图像可以保存为PNG、JPEG、TIFF格式文件。
  • 数据类型为float32的图像可以保存成PFM、TIFF、OpenEXR、和Radiance HDR格式文件。

参数params还可以设置JPEG图像的质量、PNG的压缩级别等。
参数params的所有可取值和意义大家可参见下面这个官方链接:
https://docs.opencv.org/4.4.0/d4/da8/group__imgcodecs.html#ga292d81be8d76901bff7988d18d2b42ac

示例代码:
C++代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//QQ群 271891601
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main()
{
	Mat src_image = imread("F:/material/images/2022/2022-10/bxf_small.jpg");

	imwrite("F:/img_output/bxf_small_output.jpg", src_image);

	waitKey();
	return(0);
}

Python代码如下:

# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术

# 博主微信/QQ 2487872782
# QQ群 271891601
# 欢迎技术交流与咨询

# OpenCV的版本为4.4.0

import cv2 as cv

src_image = cv.imread('F:/material/images/2022/2022-10/bxf_small.jpg')
cv.imwrite("F:/img_output/bxf_small_output.jpg", src_image);

cv.waitKey(0)
cv.destroyAllWindows()

上面代码运行完成后,在文件夹 F:/img_output/ 下生成了一幅名为 bxf_small_output.jpg 的图像,截图如下:
在这里插入图片描述

【OpenCV】OpenCV函数精讲之 -- imwrite()函数 imwrite()函数用于输出图像到文件。 imwrite()格式: bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>()) 参数说明: 第一个参数:const string&类型的filename,指写入的文件... 阅读详情

相关推荐

C++ OpenCV图像处理实战:从读取、显示到保存的完整流程与避坑指南

图像处理是计算机视觉与多媒体应用的基础,其核心在于将图像数据从存储介质加载到内存,并通过算法进行解析与操作。理解图像在内存中的矩阵表示(如OpenCV的cv::Mat)以及不同颜色空间(如BGR与RGB)的转换原理,是构建稳定处理流程的关键。这些基础操作的技术价值在于,它们为后续高级算法(如边缘检测、特征提取)提供了可靠的数据输入与输出保障。在应用场景上,无论是计算机视觉算法开发、嵌入式图像处理,还是游戏资源加载,一个健壮的图像I/O流程都是不可或缺的。本文聚焦于使用C++和OpenCV库,深入解析`imr

weixin_30298497的博客 387

python-opencv第二期:imwrite函数详解

​ 概要:众嗦粥之所周知,在如今机器视觉(Computer Versionshort for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为机器视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。本文就将介绍其中一个较为基础的函数——imwrite函数,将我们编辑后的图片矩阵以文件的形式储存起来,与我们第一期的imread函数形成呼应关系。(唱山歌(bushi)) ​

追星,但也不要忘了土地 5万+

【opencv-c++】cv::imwrite函数保存图片

imwrite函数用于将图像mat保存到指定的文件,可以是各种格式的图像。 imwrite函数原型: bool cv::imwrite(const String & filename, InputArray img, const std::vector & params = std::vector() ) filename参数:需要保存图像的文件名,要保存图片为哪种格式,就带什么后缀。 img参数:要保存的图像mat。 params 参数:表示为特定格式保存的

jn10010537的博客 4552

OpenCV:imwrite函数保存图片

imwrite函数功能:用于将图像保存到指定的文件,可以为各种格式的图像。 函数原型: bool cv::imwrite(const String & filename, InputArray img, const std::vector<int> & params = std::vector<int>() ) 函数参数: filename...

GodLei1995 9万+

【opencv-python】 cv2.imwrite保存BMP位图

为什么要理解这个问题? 也许,您认为你打开的图片只有几十kb,为什么做图像处理时间很长?推理时间长或是http传输时间长? 不排除程序有bug,或是待优化的地方,比如编码问题,或是算法问题等。 但这里说的是您可能并不了解你说的图片的大小真的是您理解的那样子? 图片文件,例如jpg、png等格式,用于储存在硬盘中,它们的大小,并不一定代表该图片在内存中的大小,内存中图片数据将以位图的形式打开; 其位图的大小基本等于保存为bmp格式的图片的大小(因为bmp图片需要另外增加54字节的信息头(文件信.

jn10010537的博客 5162

Xilinx PL端DP显示接口开发实战(一)——环境搭建与硬件选型

本文详细介绍了Xilinx PL端DP显示接口开发的环境搭建与硬件选型实战经验。从Vivado和Vitis 2021.1版本的软件安装要点,到DP141和MCDP6000芯片的选型建议,再到DP1.4接口的RX/TX方向开发关键点,为开发者提供了全面的技术指导。文章还分享了IP核配置、BD原理图设计以及常见问题排查的实用技巧,帮助开发者高效完成Xilinx DP接口开发项目。

weixin_29250573的博客 168

Baumer堡盟工业相机BGAPI SDK联合OpenCV进行图像转换一(C++)

Baumer堡盟工业相机BGAPI SDK联合OpenCV进行图像转换一(C++)

xianzuzhicai的博客 211

[LVGL] 刷新率优化

实验硬件:STM32F407ZGT6;2.4寸TFT-LCD模块(ILI9341驱动芯片、XTP2046触摸芯片)本文目标:lvgl的刷新率优化,解决拉帘子问题注意:本文在LVGL显示触摸代码移植完成的基础上进行,第一次使用lvgl可根据前文一步步移植,点击下方传送门查看相关文章传送门:STM32F4驱动ILI9341的TFT-LCD触摸屏(HAL库)(一)STM32F4驱动ILI9341的TFT-LCD触摸屏(HAL库)(二)[LVGL] 显示代码移植 基于STM32F4。

2301_77117901的博客 2774

OpenCV图像读写深度解析:从imread/imwrite原理到实战避坑指南

图像处理是计算机视觉的基石,其核心在于将图像数据在存储介质与内存间高效转换。这一过程涉及图像编解码原理、内存管理与格式转换等底层机制,直接决定了后续算法处理的准确性与效率。在工程实践中,图像读写不仅是数据入口,更是性能瓶颈与错误高发区,对系统稳定性至关重要。本文聚焦OpenCV中imread与imwrite两个关键函数,深入剖析其参数机制、跨平台路径处理、异常排查及性能优化策略,涵盖PNG透明度处理、JPEG质量压缩、高位深图像支持等高频技术细节,帮助开发者构建稳健高效的图像处理流水线。

weixin_30727835的博客 424

LMI线性矩阵不等式之非线性变量处理

​ 如果一个LMI线性矩阵不等式中的某项存在两个矩阵变量相乘,那么称该类情形为非线性矩阵不等式,而要直接求解时很困难的,而且LMI工具箱也无法求解非线性矩阵,所以需要通过变量替换法进行处理。 ​...

Mr.邹的博客 4544

三维重建之条纹投影结构光(一)

该系列为条纹投影结构光学习笔记,一共分为四篇。第一篇记录文献阅读的笔记,对重要知识点进行摘录介绍。 本篇以理论知识推导为主,主要从以下三个方面进行介绍,首先介绍条纹投影的三角测量原理;然后介绍相位主值的求解和相位展开;最后介绍相位和高度的模型,即相高模型。本篇博文不涉及具体的代码实现。 条纹投影结构光测量原理 ...

beyond951的博客 3万+

怎样用MATLAB将矩阵输出为图像并存到硬盘上-图像保存到硬盘

图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601 有时候,我们在看OpenCV源码的时候,需要一幅非常简单的图像来测试(图像简单咱们可以做人工推算,然后与机器运算的结果对照),这个时候就需要用MATLAB来生成一个矩阵,并把这个矩阵生成为图像,以便于OpenCV调用,下面的MATLAB源码实现了这个功能,大家可以一试! clear all; close all; clc; A=[50 200 22

昊虹AI笔记 2万+

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

让您从源码下载到本地运行一步到位!此外,文中还将附带详细代码解析与操作步骤,即便没有开发经验,也能轻松完成二开与定制。数据库是棋牌游戏中极为关键的组成部分,用于存储用户信息、乐豆余额、游戏记录、提现申请等数据。以下是部分核心数据表结构示例,便于存储用户信息与游戏记录。AI模块能够控制游戏中的胜率,常用于调节玩家体验。防沉迷功能旨在限制未成年人游戏时间。的完整搭建流程,特别适合。首先,获取七星棋牌源码。本教程将为您详细讲解。

aa2031171的博客 7700

OpenCv之读取修改保存图像

OpenCv之读取修改保存图像 文章目录OpenCv之读取修改保存图像目标一、代码二、结果 目标 图像读取 imread 图像颜色空间的转换 cvtColor 图像保存至硬盘 (using imwrite) 一、代码 #include <iostream> #include<string> #include<opencv2/opencv.hpp> using namespace std; using namespace cv; static void t

weixin_43488529的博客 295

北斗导航 | 卡尔曼滤波与因子图优化对比(附图优化matlab代码)

- 历史数据利用:因子图通过滑动窗口保留历史状态,优化时联合多帧数据;卡尔曼滤波仅依赖当前和上一帧状态 。 - 迭代优化:因子图通过多次迭代逼近最优解,卡尔曼滤波仅单次更新 。 - 误差抑制:因子图的多次线性化可有效抑制非线性误差(如GNSS伪距观测的非线性) 。

尘世冰封的专栏 1291

【ESP32接入国产大模型之Deepseek】

🥳🥳🥳现在,我们在本教程中,您学习了如何使用ESP32接入语言大模型之Deepseek。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣如果你有任何问题,可以通过q group(945348278)加入鹏鹏小分队,期待与你思维的碰撞😘😘😘鸣谢B站UP星汇极客ESP32对接DeepSeek API,实现AI大模型交互功能。

vor234的博客 1万+

读取、修改、保存图像---opencv

目标 如下,将学习如何使用: 图像读取 imread图像颜色空间的转换 cvtColor图像保存至硬盘 (using imwrite) 代码 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3

傲慢的上校的专栏 738

(九)DFI接口时序

文章目录一、DFI Interface 一、DFI Interface   DFI接口是连接DDR Controller与DDR_PHY之间的通用接口,其信号组如下表:       

Mr.翟的博客 1万+

opencv方框内图像保存_小强学Python+OpenCV之-1.1图像加载、显示、保存

目标你将学会怎样1. 从硬盘读取一幅图像2. 将图像显示出来3. 保存一幅图像到硬盘一、体验下面,我们先直接看一段代码:image_pro.py# 导入OpenCV库 import cv2 # 加载一幅图像 image = cv2.imread("flower.jpg") # 显示图像 cv2.imshow("Image", image) # 等待输入 cv2.waitKey(0)执行该脚本:p...

weixin_42429109的博客 160

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python opencv显示图片动态_小强学Python+OpenCV之-1.1图像加载、显示、保存

目标你将学会怎样从硬盘读取一幅图像将图像显示出来保存一幅图像到硬盘一、体验下面,我们先直接看一段代码:image_pro.py# 导入OpenCV库import cv2# 加载一幅图像image = cv2.imread("flower.jpg")# 显示图像cv2.imshow("Image", image)# 等待输入cv2.waitKey(0)执行该脚本:python image_pro.p...

weixin_32135505的博客 684

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OpenCV入门实战轻松掌握图像读取、显示与保存的核心技巧

一个典型的程序流程是:首先使用`cv2.imread()`读取图像,然后使用`cv2.imshow()`显示原图,接着可以进行一些简单的图像处理操作(例如转换为灰度图),再次使用`cv2.imshow()`显示处理后的结果,最后通过`cv2.imwrite()`将处理后的图像保存到硬盘。例如,我们可以获取按键的ASCII码,根据不同的按键执行不同的操作,比如按下‘s’键保存图片,按下‘q’键退出程序,这使得我们的程序具备了基本的交互能力。熟练掌握图像的读取、显示和保存是学习OpenCV所有高级功能的基础。

oAnTuSheng12的博客 339

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

读取、修改、保存图像

注意: 我们假设读者已经了解图像读取函数 imread ,并能使用 imshow 将图像显示到窗口。 目标 如下,将学习如何使用: 图像读取 imread 图像颜色空间的转换 cvtColor 图像保存至硬盘 (using imwrite) 代码 代码如下: #include <cv.h> #include <highgui.h> using namespace cv...

小鱼儿飞丫飞 273

【OpenCV_05】把图像&视频写入文件Write Image & Video to File

今天,聊聊怎么吧图像以及视频写入到文件里。 Write Image to File 把图片写入到文件 下面的例子是创建一个黄色的图像并且写到文件里,下面就是采用OpenCV来实现. //////////////////////////////////////////////////////////////////////////////////////////////////

tealex的专栏 5250

opencv yuv保存本地_【1】Introduction to OpenCV (5)读取、修改、保存一副图像

Introduction to OpenCV部分的内容都比较简单,有基础的可以跳过。如果编程基础不好,按照例子自己调试有助于入门,不需要详细阅读tutorials。但是入门之后推荐看看原文,有一些基础性的知识,对于理解和应用OpenCV以及编程很有帮助(顺便学学英语:))。目标用imread读取图像使用cv::cvtColor,将BGR图像变换到灰度图像使用imwrite保存变换结果原文网址Loa...

weixin_39790528的博客 197

opencv shape函数_小强学Python+OpenCV之-1.1图像加载、显示、保存

目标你将学会怎样1. 从硬盘读取一幅图像2. 将图像显示出来3. 保存一幅图像到硬盘一、体验下面,我们先直接看一段代码:image_pro.py# 导入OpenCV库 执行该脚本:python 我们会看到输出:二、分析在上面的代码中,1.导入库首先要导入opencv库。这是我们必须要用到的库,所以要先导入。# 导入OpenCV库 2.加载图像图像的加载使用cv2.imread函数(瞧,我们用到了来...

weixin_39931923的博客 548

OpenCV 基于C++图像读取及存储API函数

本文详细讲解了OpenCV支持的图像格式,读入图像,显示图像、存储图像的API函数,以及从摄像头获取图像的方法。让后以实例演示了OpenCV4.8基于VC2022、读入图像,显示图像、存储图像,从摄像头获取图像的具体操作。

billliu66的博客 1553
上一篇: 详解OpenCV的函数imread()和函数imshow(),并利用它们实现对图像的读取和显示
下一篇: C++下批量读取名字无规则的图片文件的示例代码(利用类WIN32_FIND_DATA实现)
昊虹AI笔记
博客等级 码龄11年 4439粉丝 981原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊虹AI笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值