(遇到问题)小工具-txt2list-list2img根据txt文件的名单,读取一个文件夹到里面的文件到另外一个文件(针对HDFNet算法将训练集放在一起)

HDFNet算法中的训练集比较特殊,是两个数据集(NJUD1985 and NLPR1000)的训练部分(1485 and 700)的合并的结果
也就是说:
NJUD里面有1985张图片,其中1485张作为训练,剩下的500作为测试
NLPR里面有1000张图片,其中700张作为训练,整下的300张作为测试
我们要做的是从NJUD里面根据txt文件的索引找到这些图片,读取,并写入到另外一个文件夹

1 从txt文件中读取地址到list

https://blog.csdn.net/qq_34489091/article/details/80652653?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

1  txt2list

2 python

import sys
result=[]
with open('accounts.txt','r') as f:
	for line in f:
		result.append(list(line.strip('\n').split(',')))
print(result)

2 根据list,转移文件夹中的部分文件-到另外一个文件夹

A 简单版本

import cv2
import sys


result_list=[]

# 1 读取列表里
with open('njud_test_depth.txt','r') as f:
	for line in f:
		result_list.append(list(line.strip('\n').split(',')))

# 2 逐路径读取图片,并写入新的地址
for img_path in result_list:
    img_path = img_path[0] + '.png' 

    # 读入图片 
    img = cv2.imread(img_path, cv2.IMREAD_COLOR)  
    name = img_path[img_path.rfind("/")+1:-4]  
    file = '/home/nk/zjc/PycharmProjects/Transmit/HDFNet/list/NJUD-depth/' \
           + str(name) + '.png'
    # 写入图片   
    cv2.imwrite(file, img)
    # out.save('/home/nk/zjc/PycharmProjects/3ClassicAlgorithm/HOG_SVM-master/svm128/' + str(name) + '.jpg')  # todo 3

B 复杂版本(带有备注,以及print)

import cv2
import sys


result_list=[]

# 1 读取列表里
with open('njud_test_depth.txt','r') as f:
	for line in f:
		result_list.append(list(line.strip('\n').split(',')))
print('查看路径列表->', result_list)

# 2 逐路径读取图片并写入新的地址
for img_path in result_list:
    img_path = img_path[0] + '.png'  # Depth、Mask里面的文件后缀是pn, Image里面的文件后缀是jpg
    print('检查读取路径->', img_path)  # /home/nk/Datasets/Saliency/RGBDSOD/NJU2K/Depth/000188_left.png
    # 读入图片 
    img = cv2.imread(img_path, cv2.IMREAD_COLOR)  # 0 灰色
    # 获取图片的名字, .rfind表示找到“/”,+1表示从这个/之后的所有字符保留,-4表示最后这几个去除
    name = img_path[img_path.rfind("/")+1:-4]  
    print('检查文件名->', name)  # 000188_left
    print('检查输出路径->', '/home/nk/zjc/PycharmProjects/Transmit/HDFNet/list/NJUD-depth/' \
           + str(name) + '.png')  # /home/nk/zjc/PycharmProjects/Transmit/HDFNet/list/NJUD-depth/001091_left.png
    file = '/home/nk/zjc/PycharmProjects/Transmit/HDFNet/list/NJUD-depth/' \
           + str(name) + '.png'  # Depth、Mask里面的文件后缀是pn, Image里面的文件后缀是jpg
    # 写入图片
    cv2.imwrite(file, img)
    # out.save('/home/nk/zjc/PycharmProjects/3ClassicAlgorithm/HOG_SVM-master/svm128/' + str(name) + '.jpg')  # todo 3

猜你喜欢

转载自blog.csdn.net/zjc910997316/article/details/113616217