深度学习、图像处理中常用的功能函数 (一)

1.复制某个目录下的图像并重命名至新文件夹中:

在运行这个脚本之前,请替换source_folder和target_folder变量的值为你实际想要用的源和目标文件夹的路径

import os
import cv2

# 源文件夹和目标文件夹路径
source_folder = 'path/to/source/folder'
target_folder = 'path/to/target/folder'

# 如果目标文件夹不存在,则创建它
if not os.path.exists(target_folder):
    os.makedirs(target_folder)

# 遍历源文件夹并排序
image_files = os.listdir(source_folder)
image_files.sort()

# 遍历图像列表,对满足后缀要求的文件进行重新读写
for index, image_file in enumerate(image_files):
    if image_file.endswith('.png') or image_file.endswith('.jpg'):
        image_name = os.path.join(source_folder, image_file)
        image = cv2.imread(image_name)
        cv2.imwrite('{}/{:0>05d}.jpg'.format(target_folder, index+1), image)

print("All images have been copied and renamed successfully.")

2.将文件夹下图像转为视频:

import os
import cv2

source_path = 'path/to/source/'
video_save_path = 'path/to/video/'
fps = 24 #视频每秒24帧
size = (1280, 720) #需要转为视频的图片的尺寸,必须和图像尺寸对应!!!!!!!!!!!!!!

if not os.path.exists(video_save_path):
    os.makedirs(video_save_path)
    
filelists = os.listdir(source_path)
video = cv2.VideoWriter(video_save_path+'video.mp4', cv2.VideoWriter_fourcc('m', 'p', '4', 'v'), fps, size)
#视频按照上述设置初始化为mp4格式

filelists.sort() #排序使得视频顺畅

for index, item in enumerate(filelists):
    if item.endswith('.png') or item.endswith('.jpg'): 
    #找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它
        image = os.path.join(source_path, item)
        img = cv2.imread(image)
        video.write(img)
print('Done')
video.release()

3.将不同的图像进行concat操作连在一起:

import cv2
import numpy as np
import os

# 图像路径
path0 = 'path/to/image0'
path1 = 'path/to/image1'
path2 = 'path/to/image2'
path3 = 'path/to/image3'

# 保存路径
path_save = 'path/to/save'

if not os.path.exists(path_save):
    os.makedirs(path_save)

images0 = os.listdir(path0)
images1 = os.listdir(path1)
images2 = os.listdir(path2)
images3 = os.listdir(path3)

images0.sort()
images1.sort()
images2.sort()
images3.sort()

image_list0 = []
image_list1 = []
image_list2 = []
image_list3 = []

# 将每个文件下的图像打包成列表
for index, item in enumerate(images0):
    if item.endswith('.png'): 
        #找到路径中所有后缀名为.png的文件,可以更换为.png或其它
        image_name = os.path.join(path0, item)
        img = cv2.imread(image_name)
        image_list0.append(img)
        
for index, item in enumerate(images1):
    if item.endswith('.png'): 
        #找到路径中所有后缀名为.png的文件,可以更换为.png或其它
        image_name = os.path.join(path1, item)
        img = cv2.imread(image_name)
        image_list1.append(img)

for index, item in enumerate(images2):
    if item.endswith('.png'): 
        #找到路径中所有后缀名为.png的文件,可以更换为.png或其它
        image_name = os.path.join(path2, item)
        img = cv2.imread(image_name)
        image_list2.append(img)

for index, item in enumerate(images3):
    if item.endswith('.png'): 
        #找到路径中所有后缀名为.png的文件,可以更换为.png或其它
        image_name = os.path.join(path3, item)
        img = cv2.imread(image_name)
        image_list3.append(img)

for i in range(len(image_list1)):
    #横向concat
    image_two = np.concatenate((image_list0[i],image_list1[i]), axis = 1)
    image_two2 = np.concatenate((image_list2[i],image_list3[i]), axis = 1)
    #纵向连接
    image_mix = np.vstack((image_two, image_two2))
    cv2.imwrite('{}/{:04d}.png'.format(path_save, i+1), image_mix)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值