(遇到問題)小工具-txt2list-list2img根據txt檔案的名單,讀取一個資料夾到裡面的檔案到另外一個檔案(針對HDFNet演算法將訓練集放在一起)
阿新 • • 發佈:2021-02-04
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