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