MIT FiveK圖像轉化--DNG到TIFF,TIFF到JPEG


MIT FiveK圖像轉化--DNG到TIFF,TIFF到JPEG

  MIT FiveK數據庫是研究圖像自動修飾算法會用到的基准數據庫,然而那個網頁上提供給我們的5000張原始圖像的格式為DNG格式(一種raw格式),需要我們自己應用dcraw對圖像進行處理;同時,經過專家修飾過的圖像被分散到不同的鏈接下進行下載(下載的爬蟲,可以參考這篇博客),而且格式為16位tiff格式,差不多總共兩三百G的大小。數據集非常龐大,而且dng格式不利於程序的處理,因此博主希望能夠將這些圖片全部都轉為最為常見的sRGB空間的JPEG格式,下面就介紹具體操作方法。

注:所用的系統為Ubuntu系統

1、應用dcraw將DNG格式轉為16位TIFF格式

  首先,需要將原始的數據集從本網站上下載下來,將分散到數個文件夾中的DNG圖片放入同一個文件夾中,然后對逐個文件應用dcraw來進行處理,轉為16位TIFF文件,色彩空間為Pro Photo,shell腳本如下:

 

chmod a+rwx DNG2TIFF.sh
filelist=$(ls *.dng | tr " " "\?") #獲得文件夾中所有的文件的文件名(這一處理可以解決文件名中有空格的問題,讀取完整的文件名)
#遍歷dng文件,用dcraw進行處理
for file in $filelist
do 
 dcraw -o 4 -4 -T "$file" #對圖片進行處理,最后路徑上加雙引號是因為有的路徑之間是有空格的,添加雙引號可以避免shell將空格認為分割符號
 rm -f "$file" #刪除原始DNG文件
echo "$file" 'done!'
done

 

其中主要需要注意的點是,這個數據集中的某些文件(共29個)的文件名中是包含空格的,在使用shell腳本遍歷文件名或者訪問文件時尤其需要注意這一點。

2、應用ImageMagick將TIFF轉為JPEG

  ImageMagick可以說是ubuntu系統上面處理圖片神器,可以對圖像執行的操作非常豐富,感覺就像是命令行版本的photoshop一樣。這一部分主要實現的轉換為,將16位TIFF圖片(Pro Photo色彩空間)轉為JPEG(sRGB)。首先需要在TIFF文件夾內新建立一個名為“JPEG”的文件夾,用於放置處理之后的JPEG圖片。同上一個轉換一樣,也需要注意文件名中的空格問題,具體shell腳本如下。

chmod a+rwx TIFF2JPEG.sh
filelist=$(ls *.tiff | tr " " "\?") #獲得文件夾中所有的文件
#遍歷tiff文件,用ImageMagick進行處理
for file in $filelist
do
 file_name=${file%.*}
 convert "$file" -profile sRGB.icc JPEG/"$file_name".jpeg #對每一張tiff格式的圖片進行處理
echo "$file" 'done!'
done 

其中sRGB.icc文件為sRGB的色彩配置文件,可以在這個地址下載 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM