项目场景:
跑红外与可见光图像融合代码(imagefusion-rfn-nest)
问题描述
论文中用到skait数据集,但是代码需要红外与可见光分开放置两个文件夹,因此写了一些代码调整
转成以下格式
解决方案:
import os
import shutil
def rename_images_with_relative_path(root_directory):
# 遍历根文件夹及其子文件夹
for folder_path, subfolders, file_names in os.walk(root_directory):
# 获取相对路径,去除根目录
relative_path = os.path.relpath(folder_path, root_directory)
# 遍历子文件夹内的图片文件
for file_name in file_names:
# 检查文件是否为图片(你可以根据需要扩展这个条件)
if file_name.lower().endswith(('.jpg', '.jpeg', '.png', '.gif')):
# 构建新的文件名,包括相对路径
# new_file_name = os.path.join(relative_path, file_name)
new_file_name = (relative_path + file_name).replace("\\", "")
# 构建文件的完整路径
file_path = os.path.join(folder_path, file_name)
new_file_path = os.path.join(folder_path, new_file_name)
print("111")
# 重命名文件
os.rename(file_path, new_file_path)
print(f"重命名文件: {file_path} -> {new_file_path}")
# 调用函数并传入根文件夹路径
root_directory = "F:\数据集\kaist\KAIST\kaist"
# rename_images_with_relative_path(root_directory)
# 源文件夹,包含要移动的文件
source_folder = "F:\数据集\kaist\KAIST\kaist"
# 目标文件夹,将文件移动到这里
ir_destination_folder = "F:\数据集\kaist\KAIST\ir"
vis_destination_folder =r"F:\数据集\kaist\KAIST\vis"
# 遍历源文件夹中的所有文件
i = 0
for root, _, files in os.walk(source_folder):
for file in files:
# 构建源文件的完整路径
source_file_path = os.path.join(root, file)
if "ir" in file:
# 构建目标文件的完整路径
ir_destination_file_path = os.path.join(ir_destination_folder, file)
#复制文件到目标文件夹
shutil.copyfile(source_file_path, ir_destination_file_path)
print(f"移动文件: {source_file_path} -> {ir_destination_file_path}")
else:
vis_destination_file_path = os.path.join(vis_destination_folder, file)
shutil.copyfile(source_file_path, vis_destination_file_path)
print(f"移动文件: {source_file_path} -> {vis_destination_file_path}")
i = i + 1
print(i)