MIT-Adobe FiveK Dataset 圖片自動下載python
注:通過網友的提示,發現有更爲方便的得到C修過的圖片。只須要下載原始的50G的raw圖片,而後在電腦上面安裝light room,這個軟件能夠應用數據集中所記錄的各個修圖人員的操做數據,所以裏面記錄了全部五我的修過的圖片數據,具體能夠參考:https://github.com/yuanming-hu/exposure/wiki/Preparing-data-for-the-MIT-Adobe-FiveK-Dataset-with-Lightroom
git
MIT-Adobe FiveK是如今不少作圖像加強(image enhancement)與圖像修飾(image retouching)方面研究的人員常常會使用到的數據庫。這個數據庫中包含5000張dng格式的原始圖片及分別由五個(A,B,C,D,E)專業修圖人員手工修飾後的圖片。關於該數據庫的詳細資料能夠在:https://data.csail.mit.edu/graphics/fivek/上找到。博主目前也在做圖像加強方面的算法,在該網站上面,雖然提供了原始圖片的下載連接,可是修飾後的圖片只提供了每一個圖片的獨立下載連接,手工對這些圖片一張張下載的話,確定是一件使人抓狂的事情,所以博主打算應用一個python腳原本自動下載所須要的圖片。github
查看網頁的源碼,發現這些通過修飾後的圖片的URL存在必定的規律,例如:由C修飾的第一張圖片的URL爲https://data.csail.mit.edu/graphics/fivek/img/tiff16_c/a0001-jmac_DSC1459.tif。該地址能夠劃分爲三部分:https://data.csail.mit.edu/graphics/fivek/img/(不變),tiff16_c(表明C修飾的圖片,若是最後一個字母是D,那麼就表明D所修飾的圖片),a0001-jmac_DSC1459.tif(文件名)。發現這一規律以後,咱們就能夠運用簡單的python腳本,經過圖片的文件名來將圖片下載到本地。算法
數據集中全部文件的名稱在下載原始圖片的時候就能夠下載下來,它們被分別放置在名爲:filesAdobe.txt和filesAdobeMIT.txt這兩個文件中。自動下載的腳本以下:數據庫
import os import sys from urllib.request import urlretrieve #改變當前工做路徑 CURRENT_PATH="/home/luohang/PyLearn"#本文件所在路徑 os.chdir(CURRENT_PATH)#改變當前路徑 #存儲圖像名稱的list img_lst=[] #讀取圖片名列表 with open('filesAdobe.txt', 'r') as f: for line in f.readlines(): img_lst.append(line.rstrip("\n"))#去掉換行符 with open('filesAdobeMIT.txt', 'r') as f: for line in f.readlines(): img_lst.append(line.rstrip("\n"))#去掉換行符 #urlretrieve 函數的回調函數,顯示下載進度 def cbk(a,b,c): '''回調函數 @a:已經下載的數據包數量 @b:數據塊的大小 @c:遠程文件的大小 ''' per=100.0*a*b/c if per>100: per=100 #在終端更新進度 sys.stdout.write("progress: %.2f%% \r" % (per)) sys.stdout.flush() #根據文件的url下載圖片 for i in img_lst: URL='https://data.csail.mit.edu/graphics/fivek/img/tiff16_c/'+i+'.tif'#下載由C所調整的圖像(可根據須要下載其它的四類圖像) print('Downloading '+i+':') urlretrieve(URL, '/media/luohang/軟件/FiveK_C/'+i+'.tif', cbk)#將所獲取的圖片存儲到本地的地址內
運行結果以下:app