【OpenCV 例程300篇】02. 图像的保存(cv2.imwrite)

专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』

01. 图像的读取(cv2.imread)
02. 图像的保存(cv2.imwrite)
03. 图像的显示(cv2.imshow)
04. 用 matplotlib 显示图像(plt.imshow)


【OpenCV 例程300篇】02. 图像的保存(cv2.imwrite)


函数 cv2.imwrite() 用于将图像保存到指定的文件。

函数说明:

retval = cv2.imwrite(filename, img [, paras])

  • cv2.imwrite() 将 OpenCV 图像保存到指定的文件。
  • cv2.imwrite() 基于保存文件的扩展名选择保存图像的格式。
  • cv2.imwrite() 只能保存 BGR 3通道图像,或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像。

参数说明:

  • filename:要保存的文件的路径和名称,包括文件扩展名

  • img:要保存的 OpenCV 图像,nparray 多维数组

  • paras:不同编码格式的参数,可选项

    • cv2.CV_IMWRITE_JPEG_QUALITY:设置 .jpeg/.jpg 格式的图片质量,取值为 0-100(默认值 95),数值越大则图片质量越高;
    • cv2.CV_IMWRITE_WEBP_QUALITY:设置 .webp 格式的图片质量,取值为 0-100;
    • cv2.CV_IMWRITE_PNG_COMPRESSION:设置 .png 格式图片的压缩比,取值为 0-9(默认值 3),数值越大则压缩比越大。
  • retval:返回值,保存成功返回 True,否则返回 False。

注意事项:

  1. cv2.imwrite() 保存的是 OpenCV 图像(多维数组),不是 cv2.imread() 读取的图像文件,所保存的文件格式是由 filename 的扩展名决定的,与读取的图像文件的格式无关。
  2. 对 4 通道 BGRA 图像,可以使用 Alpha 通道保存为 PNG 图像。
  3. cv2.imwrite() 指定图片的存储路径和文件名,在 python3 中不支持中文和空格(但并不会报错)。必须使用中文时,可以使用 cv2.imencode() 处理,参见扩展例程。

基本例程:

    # 1.4 图像的保存imgFile = "../images/logoCV.png"  # 读取文件的路径img3 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)saveFile = "../images/imgSave.png"  # 保存文件的路径# cv2.imwrite(saveFile, img3, [int(cv2.IMWRITE_PNG_COMPRESSION), 8])  # 保存图像文件, 设置压缩比为 8cv2.imwrite(saveFile, img3)  # 保存图像文件

扩展例程:

    # 1.5 保存中文路径的图像imgFile = "../images/logoCV.png"  # 读取文件的路径img3 = cv2.imread(imgFile, flags=1)  # flags=1 读取彩色图像(BGR)saveFile = "../images/测试图02.jpg"  # 带有中文的保存文件路径# cv2.imwrite(saveFile, img3)  # imwrite 不支持中文路径和文件名,读取失败,但不会报错!img_write = cv2.imencode(".jpg", img3)[1].tofile(saveFile)

在这里插入图片描述


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121168935)
Copyright 2022 youcans, XUPT
Crated:2021-11-18
更多内容请见:>『youcans 的 OpenCV 例程300篇 - 总目录』(https://blog.csdn.net/youcans/article/details/125112487)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mxnet深度学习(Symbol)

mxnet深度学习(Symbol) 自动标志化区分 NDArray是一个基础的计算单元在MXNet里面的。除此之外,MXNet提供一个标志化的接口,叫做Symbol,为了简化构造神经网络。标志化结合了灵活性和效率。一方面,它是和Caffe里面的神经网络构造是…

【OpenCV 例程300篇】03. 图像的显示(cv2.imshow)

专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imshow) 04. 用 matplotlib 显示图像(plt.imsho…

【OpenCV 例程300篇】04. 用 matplotlib 显示图像(plt.imshow)

专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imshow) 04. 用 matplotlib 显示图像(plt.imsho…

mxnet深度学习(KVS)

mxnet深度学习(KVS) 分布式的键值对的存储(Ditstributed Key-value Store) KVStore是一个数据共享的地方。我们可以把它认为他是一个简单的类横跨不同的设备(GPUS和不同的机器),在这里设备将会压入和提取数据。初始化 让我们考虑一个简单的例子:初始化一个(int,NDAa…

【OpenCV 例程300篇】05. 图像的属性(np.shape)

专栏地址:『youcans 的 OpenCV 例程 300 篇』 【OpenCV 例程300篇】05. 图像的属性(np.shape) OpenCV 中图像对象的数据结构是 ndarray 多维数组,因此 ndarray 数组的属性和操作方法也都适用于 OpenCV 的图像对象。 img.ndim&…

mxnet安装(Jetson)

mxnet安装 mxnet是一个跨平台的深度学习框架,今天我们将在板子(Jetson Tk1或Jetson Tx1或者Tegra K1)上安装mxnet,并用到cuda加速。1.第一步,我们先安装依赖 sudo apt-get update sudo apt-get install -y build-essential git libatlas-base-dev libope…

【OpenCV 例程300篇】06. 像素的编辑(img.itemset)

文章目录:『youcans 的 OpenCV 例程300篇 - 总目录』 【OpenCV 例程300篇】06. 像素的编辑(img.itemset) 像素是构成数字图像的基本单位,像素处理是图像处理的基本操作。 对像素的访问、修改,可以使用 Numpy 方法直接…

图片里的标志化的构造和执行

图片里的标志化的构造和执行 这是一篇解释在图片里面的进行标志化构造和执行的文章。你最好和这篇文章一起阅读 Symbolic API..标志构成 标志是我们想做的计算的描述。标志构造API生成计算图源来描述计算的需要。下面的图片显示了怎样我们组成标志来描述基本的计算。 mxnet.sy…

【OpenCV 例程300篇】07. 图像的创建(np.zeros)

专栏地址:『youcans 的 OpenCV 例程 300 篇』 【OpenCV 例程300篇】07. 图像的创建(np.zeros) OpenCV 中图像对象的数据结构是 ndarray 多维数组,因此可以用 Numpy 创建多维数组来生成图像。特别对于空白、黑色、白色、随机等特殊…

mxnet创建新的操作(层)

mxnet创建新的操作(层) 这篇blog将会告诉你如何创建新的MXNet操作(层)。 我们竭尽所能提供最好的操作对于绝大多数的使用场景。然而,如果你发现自己需要自定义层,你有3个选择: 1.使用原生的语言和它的矩阵库(numpy in Python)。这不需要过多的能力和对…

【OpenCV 例程300篇】08. 图像的复制(np.copy)

专栏地址:『youcans 的 OpenCV 例程 300 篇』 【OpenCV 例程300篇】08. 图像的复制(np.copy) 使用 Numpy 的 np.copy() 函数可以进行图像的复制,不能通过直接赋值进行图像的复制。 函数说明: arr numpy.copy(img) # …

机器学习里面常用知识

每次手推公式就会遇见各种不会的,在网上搜了个总结的还不错的常用求导公式。。。继续更新中…… 一、基本线性代数 以下部分原文地址:http://blog.163.com/live_freely/blog/static/151142060201023154057339/ 在网上看到有人贴了如下求导公式&#xff1…

【OpenCV 例程300篇】09. 图像的裁剪(cv2.selectROI)

专栏地址:『youcans 的 OpenCV 例程 300 篇』 【OpenCV 例程300篇】09. 图像的裁剪(cv2.selectROI) 用 Numpy 的切片方法可以进行图像的裁剪,操作简单方便。 方法说明: retval img[y:yh, x:xw].copy() 对图像 img 裁…

【OpenCV 例程300篇】10. 图像的拼接(np.hstack)

3文章目录:『youcans 的 OpenCV 例程300篇 - 总目录』 【OpenCV 例程300篇】10. 图像的拼接(np.hstack) 用 Numpy 的数组堆叠方法可以进行图像的拼接,操作简单方便。 方法说明: retval numpy.hstack((img1, img2, ……

win下python和opencv安装

最简单粗暴的安装教程 1.先去下载3个文件pycharm(IDE),anaconda(集成库),opencv的whl文件 http://yun.baidu.com/share/link?shareid1022325066&uk1275716166 里面还有别的学习教程,包括opencv,numpy,matplotlib等。 2.把pycharm和an…

【OpenCV 例程300篇】11. 图像通道的拆分(cv2.split)

文章目录:『youcans 的 OpenCV 例程300篇 - 总目录』 【OpenCV 例程300篇】11. 图像通道的拆分(cv2.split) 函数 cv2.split() 将 3 通道 BGR 彩色图像分离为 B、G、R 单通道图像。 函数说明: cv2.split(img[, mv]) -> retval …

机器学习矩阵求导

矩阵求导好像读书的时候都没学过,因为讲矩阵的课程上不讲求导,讲求导的课又不提矩阵。如果从事机器学习方面的工作,那就一定会遇到矩阵求导的东西。维基百科上:http://en.wikipedia.org/wiki/Matrix_calculus , 根据Y与…

【OpenCV 例程300篇】12. 图像通道的合并(cv2.merge)

文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程300篇】12. 图像通道的合并(cv2.merge) 函数 cv2.merge() 将 B、G、R 单通道合并为 3 通道 BGR 彩色图像。 函数说明: cv2.merge(mv[, dst]) -> retval # BG…

机器学习向量化练习

机器学习向量化练习 在先前的练习里面,我们已经通过对自然图像完成了一个稀疏自编码的练习。在这次我们将通过向量化来使我们运行速度更快,并且我们将把它应用到手写数字里面。 数据下载 MNIST Dataset (Training Images)MNIST Dataset (Training Labe…

【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)

专栏地址:『youcans 的 OpenCV 例程 200 篇』 文章目录:『youcans 的 OpenCV 例程200篇 - 总目录』 【youcans 的 OpenCV 例程 200 篇】13. 图像的加法运算(cv2.add) 函数 cv2.add() 用于图像的加法运算。 函数说明: …