在做多媒體實驗時,使用SIFT來跑511張相片,除了影像名稱不一樣之外,其餘的操作如出一轍,故若用人工來改挺花時間,於是我使用了DOS來批次處理。
按鍵Windows + R,出現執行視窗,輸入「cmd」,出現黑底白字視窗,輸入「cd 目的位址(想要轉換影像類型的資料夾)」,接著打指令。
指令格式為siftWin32 < “pic (0).pgm" > “pic (0).key",前者為已存在的.pgm檔名稱,後者為即將創建的.key檔名稱。指令的意義為將.pgm檔、.key檔作為參數傳入siftWin32,前者為輸入,後者為輸出。
(需注意檔名必須用兩個「"」標示出,因為檔名中間有「 (空字元)」,如此一來可視兩個「"」裡的字串為執行檔名稱。想要把輸出結果傳入result.txt,這時需要IO Redirect,基本上只要「>」即可,若想讓輸出附加於result.txt檔尾端,則使用「>>」。)
我自己寫出Generate Instruction for DOS.cpp來產生DOS批次處理.bat檔,檔案名稱pic (i).pgm和pic (i).key之i會從0跑到510(一共511張影像),我將之存為I.bat,片段內容如下:
siftWin32 < “pic (0).pgm" > “pic (0).key"
siftWin32 < “pic (1).pgm" > “pic (1).key"
siftWin32 < “pic (2).pgm" > “pic (2).key"
…
siftWin32 < “pic (508).pgm" > “pic (508).key"
siftWin32 < “pic (509).pgm" > “pic (509).key"
siftWin32 < “pic (510).pgm" > “pic (510).key"
我想在DOS指令視窗做批次處理,怎麼做?直接打I(I.bat)。
可以發現.bat裡的每一行指令自動按照順序執行,很神奇吧!若我存成I.txt的話,只能打I.txt來存取此檔,而且它只能被筆記本之類的軟體開啟。
另外,還有一招,就是把上頭指令反白複製,接著用滑鼠將指令貼上指令列,也有同樣的效果:P

隨意留個言吧:)~