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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python批量图片压缩 -> 正文阅读

[人工智能]python批量图片压缩

瞎扯几句

哎,开头总喜欢瞎扯几句,今天本来,啥都挺好,前两天整了个json转png的代码,今天去用他批量转换的时候,就很离谱,它·······尽然报错了,离谱,简直就是“离谱他妈给离谱开门,离谱到家了”开始找了老半天bug,只定位出了bug出现在哪。json文件太大了(原谅我的愚蠢,尽然用初始原图进行标注,这文件不大等谁李),好在最后再师兄的帮助下解决了。那么以后要对图像压缩再标注,哎··问题来了,压缩那不得整个代码。刚好用来练手。

撤了老半天终于回到正题了。

那么开始整。

参考博客:(108条消息) python 实现图像的无损压缩_云中寻雾的博客-CSDN博客_python无损压缩图片https://blog.csdn.net/qq_36387683/article/details/100579736

一、利用opencv

import cv2

img=cv2.imread("G:/1.jpg",1)
# 转为jpg格式
# [cv2.IMWRITE_JPEG_QUAITY,50] 指定图像保存时的品质,降低品质可以实现图像的压缩。
# 其中,50是可以改变的,取值为[0,100]

cv2.imwrite("G:/11.jpg",img,[cv2.IMWRITE_JPEG_QUALITY,50])

#转为png格式
# [cv2.IMWRITE_PNG_COMPRESSION,0]是调整PNG图像的压缩比。
# 为0时,压缩比最小,图像的品质最好。它的压缩范围为[0,9]

cv2.imwrite("G:/11.png",img,[cv2.IMWRITE_PNG_COMPRESSION,0])


二、利用PIL进行图像压缩

import PIL.Image as Image

img2 = Image.open("G:/1.jpg")

# quality参数: 保存图像的质量,值的范围从1(最差)到95(最佳)。 默认值为75,使用中应尽量避免高 
# 于95的值; 100会禁用部分JPEG压缩算法,并导致大文件图像质量几乎没有任何增益。
# subsampling参数:子采样,通过实现色度信息的分辨率低于亮度信息来对图像进行编码的实践
# (自己尝试)可能的子采样值是0,1和2,对应于4:4:4,4:2:2和4:1:1(或4:2:0?)。

img2.save(r'G:/2.jpg', quality=quality, subsampling=0)

三、实现批量压缩

自己新建工程,把代码粘贴进去就能用了,前提把需要的包装了。

今天遇到的问题,原始文件路径和存储压缩后文件路径中均不能有中文路径。

切记!切记!

#
import cv2
import os
import numpy as np
from PIL import Image


def pic_compress_png(image_path,new_image_path):
    '''
    将图片压缩成png格式
    :param image_path:  原始文件路径
    :param new_image_path:  保存文件路径
    :return:
    '''
    files = os.listdir(image_path)  # 获取当前路径下的所有文件名字
    files = np.sort(files)         #按名称排序
    i = 0
    for f in files:
        imgpath = image_path + f   #路径+文件名字
        img = cv2.imread(imgpath, 1)   #读取图片
        dirpath = new_image_path       #压缩后存储路径
        file_name, file_extend = os.path.splitext(f)   #将文件名的,名字和后缀进行分割
        dst = os.path.join(os.path.abspath(dirpath), file_name + '.png')  #文件最终保存的路径及名字(名字和压缩前的名字一致),
        print(os.path.join(dirpath,"1.png"))  #打印压缩缓存文件路径
        shrink = cv2.resize(img, (4864,1024), interpolation = cv2.INTER_AREA) #对图像的大小进行resize   4864 *1024
        cv2.imwrite(os.path.join(dirpath,"1.png"), shrink, [cv2.IMWRITE_PNG_COMPRESSION, 1]) #对图像进行压缩 【cv2.IMWRITE_PNG_COMPRESSION, 1】
                                                                                            #v2.IMWRITE_PNG_COMPRESSION  压缩品质 0-10 ,数字越小压缩比越小
        img1 = Image.open(os.path.join(dirpath,"1.png"))    #打开压缩后的缓冲文件
        img1.save(dst,quality=70)                          #二次压缩,并保存位原始文件的文件名
        os.remove(os.path.join(dirpath,"1.png"))           #删除缓存文件



# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    image_path = r'C:/Users/shulei/Desktop/data_shu/4/'  # 原始文件路径
    new_image_path = r'C:/Users/shulei/Desktop/data_shu/luo/' # 压缩后文件保存路径
    pic_compress_png(image_path,new_image_path)
    print("压缩完成")

# See PyCharm help at https://www.jetbrains.com/help/pycharm/

到此结束

工程代码:deepling/pic_compress_png at pic_compress_png · xiaobailong-ui/deepling (github.com)icon-default.png?t=M1L8https://github.com/xiaobailong-ui/deepling/tree/pic_compress_png/pic_compress_png

再瞎扯几句:

? ? ? ? 初次学习,有错误之处,也可以帮忙改正一下,谢谢

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:28:52  更:2022-02-28 15:33:01 
 
开发: 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/26 17:21:42-

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