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 cv2

path = "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图像!")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】深入理解数据表示与存储

文章目录 1.分析上述源程序中的变量在机器内是如何表示的1.1.并给出变量在内存中的存储情况(变量占多少个字节,每个字节的地址和存放的数据是多少)1.2.说明其存放顺序(大端、小端次序?)1.3.对齐方式&#x…

统信UOS_麒麟KYLINOS禁用USB存储

原文链接:统信UOS/麒麟KYLINOS禁用USB存储 hello,大家好啊,今天给大家带来一篇在统信UOS/麒麟KYLINOS禁用USB存储的文章,文章通过三种方式:1、在文件管理器中通过图形化方式移除USB;2、通过禁用USB存储模块…

Bumptop——3D桌面一键get

今天,博主给大家带来一款免费、炫酷的桌面真理工具——Bumptop。这是一款可使桌面变为极酷3D桌面的软件。采用极酷的3D技术,把图标立体化,同时拖拽动作也是别有动感,充满智慧,可以完全抛弃原先单调的2D和伪3D界面&…

【Axure教程】滑动内容选择器

滑动内容选择器通常是一种用户界面组件,允许用户通过滑动手势在一组内容之间进行选择。这种组件可以在移动应用程序或网页中使用,以提供直观的图片选择体验。 那今天就教大家如何用中继器制作一个滑动内容选择器,我们会以滑动选择电影为案例…

mysql binlog

binlog日志介绍 什么是 binlog binlog是server层共有的,是记录的数据更新历史,主要用来做主从同步和数据的实时备份。 binlog 怎么开启 mysql的配置文件添加相关配置并重启mysql # 1. linux打开mysql配置文件 vi /etc/my.cnf# 2. 添加binlog配置 [mysql…

Redis怎么保证数据不丢失

目录 一、Redis使用持久化保证数据不丢失 二、Redis 持久化的三种方式 三、混合持久化的流程 一、Redis使用持久化保证数据不丢失 Redis 中的数据是存放在内存中的,这样可以保证 Redis 高效的运行,然而内存中的数据会随着系统的重启而丢失,那…

栈与队列练习题

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

Python基础入门----如何通过conda搭建Python开发环境

文章目录 使用 conda 搭建Python开发环境是非常方便的,它可以帮助你管理Python版本、依赖库、虚拟环境等。以下是一个简单的步骤,演示如何通过 conda 搭建Python开发环境: 安装conda: 如果你还没有安装 conda,首先需要安装Anaconda或Miniconda。Anaconda是一个包含很多数据…

Pytorch D2L Subplots方法对画图、图片处理

问题代码 def show_images(imgs, num_rows, num_cols, titlesNone, scale1.5): #save """绘制图像列表""" figsize (num_cols * scale, num_rows * scale) _, axes d2l.plt.subplots(num_rows, num_cols, figsizefigsize) axes axes.flatten…

全新叙事赛道:诺亚引领不良资产合成潮流,DeFi生态再添“万亿”动力

在全球DeFi领域,一场革命性的变革正在悄然兴起。诺亚项目以其独特的商业模式和前瞻性的愿景成为DeFi 2.0的一股新力量。作为全球首家专注于不良资产合成铸币的平台,诺亚项目凭借其强大的经济模型和全新的叙事赛道,正迅速崭露头角,…

用requests库下载文件时的挂起问题:一步步诊断与解决方案

在使用 requests 库下载一个大小为125KB的文件时,用户遇到了一个问题,下载进程在代码的特定行挂起了。用户已经检查了操作系统的内存,发现大约有2GB的空闲内存可用。用户正在使用 requests 库的2、28、1版本,并寻求帮助来调试这个…

【LeetCode刷题-滑动窗口】--340.至多包含K个不同字符的最长子串

340.至多包含K个不同字符的最长子串 class Solution {public int lengthOfLongestSubstringKDistinct(String s, int k) {int len s.length();if(len < k){return len;}//滑动窗口的左右指针int left 0,right 0;//定义一个哈希映射HashMap<Character,Integer> hash…

「Verilog学习笔记」用3-8译码器实现全减器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 首先列出3-8译码器和全减器的真值表 全减器真值表如下 3-8译码器真值表如下 timescale 1ns/1nsmodule decoder_38(input E ,input A0 …

【双十二预售】9.9元就能学《人工智能导论》!打卡赢红包,还有B站大会员等你领

双十二买什么最划算&#xff1f;那当然是知识&#xff01;知识是永存的&#xff01;是无价的&#xff01; Mo 平台活动力度拉满&#xff01;&#xff01;&#xff01; 原价 199.9 元的浙江大学《人工智能导论》课程 现在只要 9.9 元&#xff01;&#xff01;&#xff01; 参…

专家呼吁:家长应承担起数字时代家庭教育新责任

在教育数字化转型的推进下,教育理念不断发生变化,学校教育不再是唯一的主角,家庭教育开始受到重视,家庭也正在逐渐成为新的学习中心。 2022年《家庭教育促进法》正式推行实施,进一步强调了家庭教育在孩子成长过程中的重要地位以及父母在孩子教育于成长过程中不可或缺的重要作用…

总结 CNN 模型:将焦点转移到基于注意力的架构

一、说明 在计算机视觉时代&#xff0c;卷积神经网络&#xff08;CNN&#xff09;几十年来一直是主导范式。直到 2021 年 Vision Transformers (ViTs) 出现&#xff0c;这个领域才开始发生变化。现在&#xff0c;是时候采用受 Transformer 架构启发的基于注意力的模型了&#x…

typeof null的结果为什么是Object?

在 JavaScript 第一个版本中&#xff0c;所有值都存储在 32 位的单元中&#xff0c;每个单元包含一个小的 类型标签(1-3 bits) 以及当前要存储值的真实数据。类型标签存储在每个单元的低位中&#xff0c;共有五种数据类型&#xff1a; 如果最低位是 1&#xff0c;则类型标签标志…

使用vs studio 2017的cl命令查看c++类的模型结构

1、定位到当前CPP文件的盘符 2、定位到cpp文件所在目录 3、输入&#xff1a; cl /d1 reportSingleClassLayout查看的类名 所属文件名 例如&#xff1a; 我的代码 //源1.cpp class Base { public:int m_A; protected:int m_B; private:int m_C; //私有成员只是被隐藏了&#x…

美国FDA宣布MoCRA法规最新指导意见

美国食品药品管理局&#xff08;FDA&#xff09;在2023年11月8日发布了最新指导意见&#xff0c;宣布将《2022年化妆品法规现代化法案》&#xff08;MoCRA&#xff09;中的化妆品“设施注册”和“产品列名”执行时间延后六个月至2024年7月1日。这一举措是FDA对行业意见的积极回…

中级程序员——vue3+js+git面试题

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;vue3jsgit面试题 文章目录 vue3最大缺点和优点&#xff1f;vue3组合式里面&#xff0c;如何去调用子组件里面的方法&#xff1f;watch和watcheffect有什么区别&#xff1f;计算属性和watch的区别是什…