2016-09-01 32 views
0

我有一組圖像(> 500),我想將它們轉換爲.PGM格式。
有沒有辦法從.m文件中做到這一點?我可以在MATLAB中運行irfanview並批量/轉換圖像嗎?

此致敬禮!

UPDATE 2016年6月9日

我發現下面的link,在IrfanView的命令出現,但我已經運行從MATLAB外部命令沒有經驗。我用下面的腳本:

dir_irfanview=('C:\Program Files (x86)\IrfanView\i_view32.exe'); 
cmd ='filelist=c:\v\list.txt /convert= c:\vc\*.pgm'; 
cmd2 = [cmd,dir_irfanview]; 
system(cmd2); 

,我得到以下錯誤:

「文件列表」不被識別爲一個內部或外部命令, 程序或批處理文件。

請注意,我用了 「i_view32.exe文件清單= C:符\ v \ LIST.TXT /轉換= C:\ VC * .PGM」 在DOS和沒有問題的命令。

一些指導?

+0

什麼是錯的批量轉換選項IrfanView中有本身? – Bernhard

+0

可以使用[system](http://se.mathworks.com/help/matlab/ref/system.html)在matlab之外運行程序。 –

+0

我用matlab(圖像頭)創建的圖像有問題的人臉識別方法(C/C++中的.bat),所以使用我需要轉換.pgm的方法.pgm – MMLaguz

回答

1

由於Jørgen建議您可以使用system()來調用irfanview進行轉換。

或者,你可以使用imreadimwrite在一個循環做的工作更「MATLAB」 -ish方式

fls = dir('/path/to/images/*'); 
for ii=1:numel(fls) 
    if fls(ii).isdir 
     continue; 
    end 
    [pth fn ext] = fileparts(fls(ii).name); 
    img = imread(fullfile('/path/to/images',fls(ii).name)); 
    imwrite(img, fullfile('/path/to/images',[fn, '.pgm'])); 
end 
+0

非常感謝,閱讀過有關命令系統(),我需要信息來訪問某些特定的選項程序(例如:在Irfanview中按'B'導致轉換選項)。問候! – MMLaguz