IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习中图像格式选用jpg还是png?答:png -> 正文阅读

[人工智能]深度学习中图像格式选用jpg还是png?答:png

1. 参考链接


2. 结论

  • JPEG,全称Joint Photographic Experts Group,有损压缩格式
    • 图像压缩格式,压缩好的输出文件,后缀是 jpeg 或者 jpg
  • PNG,全称Portable Network Graphic Format,可移植网络图形格式、无损压缩格式
    • 重复保存而不降低图像质量(所以,只要不是需要动画效果的地方强烈建议都采用PNG格式图片)

    • jpeg是有损压缩,png是无损的。正因如此,同一图像质量,png文件的大小,大于jpeg文件。

    • png支持透明效果(alpha),jpeg不支持。

在这里插入图片描述


3. 将jpg转为png的代码(使用PIL库)

1)经评论区提醒,更新了一下代码,现在能实现cv2PIL两种方式批量转换图像格式,我个人建议还是采用PIL的方式比较好,消除Eixf信息
2)试了一下,cv2转的图像大小比PIL小,甚至比原始图像小,而且快。但是我还是选择PIL转
3)比较之下,转换之后的png图像大小都比原本的jpg,而且cv2转的png比PIL转的大

批量实现将input_path中的jpg文件转为png保存至out_path中,主要思想是:(同理可实现其他图像格式的互转,可参考博文:通过PIL模块批量对图片格式进行转换(如jpg转png)

  1. 先用PIL.Image.open()读取图像数据,注意要消除Exif信息(代码已实现)
  2. 再使用img.save('xx.png')保存为固定图像格式(如png)
import os
import shutil
import cv2
from PIL import Image, ImageOps


def transform(input_dir, output_dir):
    if not os.path.exists(output_dir):  # 输出文件见不存在则创建
        os.makedirs(output_dir)

    for root, dirs, files in os.walk(input_dir):
        for file in files:  # 只对文件进行更改
            filepath = os.path.join(root, file)
            filename, ext = os.path.splitext(file)  # 分割出图像名称、后缀

            if ext != '.png':  # 如果后缀不是png,则进行转换
                newfile = filename + '.png'  # 后缀改为png
                print('transform ' + file)

                # -------------cv2 更改为PNG的方式------------------------------- #
                # image = cv2.imread(filepath)
                # cv2.imwrite(os.path.join(output_dir, newfile), image)

                # -------------PIL更改为PNG的方式 图像大小比cv的低----------------- #
                image = Image.open(filepath)
                image = ImageOps.exif_transpose(image)  # 消除相机的exif信息
                image.save(os.path.join(output_dir, newfile))
            else:  # 直接拷贝过去
                shutil.copy(filepath, os.path.join(output_dir, file))


if __name__ == '__main__':
    input_dir = 'images'  # 目标文件夹
    output_dir = 'images_2'  # 输出文件夹

    if not os.path.exists(input_dir):
        print("文件夹不存在!")
    else:
        print("Start to transform!")
        transform(input_dir, output_dir)
        print("Transform end!")
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:57:15  更:2022-09-24 20:59:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:41:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码