您的位置:首页 > 房产 > 家装 > 阿里巴巴运营_专业刷粉网站_电商运营推广_每日关键词搜索排行

阿里巴巴运营_专业刷粉网站_电商运营推广_每日关键词搜索排行

2024/12/22 9:12:29 来源:https://blog.csdn.net/qq_44886601/article/details/144562612  浏览:    关键词:阿里巴巴运营_专业刷粉网站_电商运营推广_每日关键词搜索排行
阿里巴巴运营_专业刷粉网站_电商运营推广_每日关键词搜索排行

1. 前言

在之前的文章中,介绍了图片的压缩技术,这里讲解如何利用python批量将图片改为指定后缀的格式。当然,也可以为深度学习批量更改文件后缀,例如在分割中,可能需要img和mask的图片名称完全一致等等

如有需要,参考本专栏其他博文

2. 单张图片更改尺寸

代码如下:

因为有的图片名称很长,甚至中途还会将后缀出现,例如 sda1233pngddwsa.png

但无论怎样风骚的文件名,不可能出现带 . + 后缀 的字符串,因为会直接报错。所以这里image_format 列表文件名都加了 . 方便遍历

import cv2def main(img_path, size=(256,256)):image_format = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.ai', '.cdr', '.eps']  # 常见的图片后缀名for i in image_format:if i in img_path:ret_path = img_path.split(i)[0]  # 文件名ret_path = ret_path + '.jpg'   # 返回的图片名img =cv2.imread(img_path)img = cv2.resize(img,size)cv2.imwrite(ret_path,img)if __name__ == '__main__':root = 'a.jpg'       # 传入图片的路径img_size = (256,256)        # sizemain(img_path=root, size=img_size)

3. 单个目录下所有图片更改

将所有需要更改的图片放在同一目录下即可:

import cv2
import os
from tqdm import tqdmdef main(folder_path,size=(256,256)):ret_folder_path = folder_path + '_ret'  # 返回父目录if not os.path.exists(ret_folder_path):  # 建立目录os.makedirs(ret_folder_path)img_path = [i for i in os.listdir(folder_path)]  # 所有图片路径for i in tqdm(img_path):img = os.path.join(folder_path, i)img = cv2.imread(img)  # 打开图片img = cv2.resize(img,size)cv2.imwrite(os.path.join(ret_folder_path, i),img)if __name__ == '__main__':root = 'test'  # 多个图片的父目录size = (256,256)main(folder_path=root,size=size)

4. 多个目录下图片更改

要将多个目录放在一个大的父目录下:

import cv2
import os
from tqdm import tqdmdef main(img_path, img_fm,size):image_format = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.ai', '.cdr', '.eps']  # 常见的图片后缀名# 返回的新目录ret_folder_path = img_path + '_ret'if not os.path.exists(ret_folder_path):os.makedirs(ret_folder_path)sub_folder = [i for i in os.listdir(img_path)]for sf in tqdm(sub_folder):os.makedirs(os.path.join(ret_folder_path, sf))for i in os.listdir(os.path.join(img_path, sf)):  # 图片名for j in image_format:if j in i:ret_path = i.split(j)[0]  # 文件名ret_path = ret_path + '.' + img_fm  # 返回的图片名try:img = cv2.imread(os.path.join(img_path, sf, i))img = cv2.resize(img,size)cv2.imwrite(os.path.join(ret_folder_path, sf, ret_path),img)except:passif __name__ == '__main__':root = 'test'  # 传入图片文件夹目录img_format = 'jpg'  # 待更改的后缀格式 jpg png jpeg ...size = (300,300)main(img_path=root, img_fm=img_format,size=size)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com