当前位置: 首页 > news >正文

OpenCV基础应用(3)— 把.png图像保存为.jpg图像

前言:Hello大家好,我是小哥谈。本节课就手把手教你如何把.png图像保存为.jpg图像,希望大家学习之后能够有所收获~!🌈 

     目录

🚀1.技术介绍

🚀2.实现代码

🚀1.技术介绍

如果在电脑某个磁盘下的某个文件夹中有多张以.png格式保存的图像,现在要把这些.png格式的图像保存为.jpg格式的图像,那么需要如何操作呢?有的读者朋友会提议采用“手动模式”,即把该文件夹中的每一幅.png格式的图像手动修改为.jpg格式的图像。这种处理模式虽然有效,但是费时费力;如果该文件夹中既有.png格式的图像,又有.jpg格式的图像,采用“手动模式”的话,难免会有些捉襟见肘。本技术的目的就是如何利用Python OpenCV既有效,又省时省力地解决这个问题。

想要利用Python OpenCV把文件夹中的.png格式的图像保存为.jpg格式的图像,首先要遍历这个文件夹中的所有图像文件。因此,需要借助os模块中的listdir()方法,该方法用于返回指定路径下的文件名和文件夹名的列表。

listdir()方法的语法格式如下所示:

os.listdir(path)

参数说明:

path:指的是被指定的路径,例如“E:\\”、“E:\\images\\”等。

本技术的目的是把指定文件夹中的.png格式的图像保存为.jpg格式的图像,这里有个关键词:“保存”。那么,如何保存图像呢?

OpenCV模块提供了用于保存图像的imwrite()方法,该方法的语法格式如下:

cv2.imwrite(filename, img)

参数说明:

filename:保存图像时所用的完整路径。

img:要保存的图像。

程序把指定文件夹中的.png图像保存为.jpg图像后,其中的.png图像仍然在这个文件夹中。为了删除这些.png图像,需要借助os模块中的remove()方法,删除这个文件夹中的.png图像

remove()方法的语法格式如下:

os.remove(path)

参数说明:

path:指的是要被删除的文件的完整路径名。例如,删除E盘下的images文件夹中的1.png,那么path的值为" E:\\images\\1.png "(双引号是英文格式的)。 


🚀2.实现代码

具体的实现代码如下所示:

import os
import cv2path = "E:\\images\\" # 声明一个路径,即E盘下的、名为images文件夹
for filename in os.listdir(path): # 遍历E盘下的、名为images文件夹中的各个文件if os.path.splitext(filename)[1] == ".png": # 如果图像是以.png格式保存的话img = cv2.imread(path + filename) # 根据拼接的路径读取图片newfilename = filename.replace(".png", ".jpg") # 把.png图像修改为.jpg图像cv2.imwrite(path + newfilename, img) # 以.jpg格式保存图像os.remove(path + filename) # 删除当前文件夹中以.png格式保存的图像
print("已经把当前文件夹中的.png图像保存为.jpg图像!")

相关文章:

  • 彩虹桥架构演进之路-性能篇
  • 爬虫----robots.txt 协议简介
  • 金融帝国实验室(Capitalism Lab)V10版本即将推出全新公司徽标(2023-11-13)
  • 多标签页文件管理器 - Win系统
  • centos 6.10 安装 readline 6.2.0
  • 2023数维杯国际数学建模A题B题C题D题思路+模型+代码+完整论文
  • 【大数据分布并行处理】单元测试(四)
  • mac清除所有数据,不抹除的情况下如何实现?
  • C#中.NET Framework4.8 Windows窗体应用通过EF访问新建数据库
  • WPF xaml Command用法介绍
  • C++初阶--内存管理
  • Visual Studio Code配置c/c++环境
  • 大数据技术与原理实验报告(MapReduce 初级编程实践)
  • 验证码:EasyDL 机器学习识别与云码平台一站式识别
  • pyTorch Hub 系列#4:PGAN — GAN 模型
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • classpath对获取配置文件的影响
  • egg(89)--egg之redis的发布和订阅
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java深入 - 深入理解Java集合
  • Less 日常用法
  • maya建模与骨骼动画快速实现人工鱼
  • Mysql5.6主从复制
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python十分钟制作属于你自己的个性logo
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端性能优化--懒加载和预加载
  • 深入浅出Node.js
  • 我建了一个叫Hello World的项目
  • 小李飞刀:SQL题目刷起来!
  • 自定义函数
  • Semaphore
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #13 yum、编译安装与sed命令的使用
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (万字长文)Spring的核心知识尽揽其中
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • .net Application的目录
  • .net core 6 redis操作类
  • .NET处理HTTP请求
  • .net流程开发平台的一些难点(1)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [C#基础知识系列]专题十七:深入理解动态类型
  • [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】