2016-02-29 22 views
1

我使用imresize來調整大小約20個圖像。我想將調整大小的圖像存儲在我創建的新文件夾中。下面是我使用的代碼:將邏輯輸出圖像保存到新的(mkdir)文件夾中

imwrite(myoutput, 'resized.png'); 

現在我的問題我們,我只得到寫入工作目錄,命名爲「resized.PNG」一個圖像。我想要保存所有20個調整大小的圖像。

我也希望他們保存在由mkdir(resizedFolder)定義的新文件夾中......我不知道該怎麼做。

這裏是我的代碼的摘錄:

dirD=dir('*.jpeg'); 
for k=1:length(dirD); %k=20  %technically 
    %i ran a long code to find a  %rectangular boundary, and cropped. 

    CropIm=imcrop(I, thisBlobsBoundingBox); 
    resizedIm=imresize(CropIm, 0.1); 
end 

現在,我想resizedIm存儲在resizedFolder作爲單獨的圖像應該給我20張。

+0

看看了'fullfile'和'mkdir'幫助,如果你還有問題,回來跟所有的代碼從閱讀到寫作 – matlabgui

回答

2

您將要使用fullfile來組合目錄和文件名。你也想爲每個圖像創建一個自定義的文件名。下面我假設你的所有圖像都在單元陣列中。

resizedFolder = '/path/to/folder'; 

% Create folder if it doesn't exist 
if ~exist(resizedFolder, 'dir') 
    mkdir(resizedFolder); 
end 

dirD = dir('*.jpeg'); 

for k = 1:numel(dirD); 
    % Your code to get the boundary 
    CropIm = imcrop(I, thisBlobsBoundingBox); 
    resizedIm = imresize(CropIm, 0.1); 

    % Create a custom filename for this image. 
    filename = sprintf('resized%02d.png', k); 
    imwrite(resizedIm, fullfile(resizedFolder, filename)); 
end 

這將創建的文件夾中,你與文件名被指定圖片:resized01.pngresized02.png ...

更新:我已經更新了我的回答更具體到你的初始代碼。

+0

謝謝你很多的傢伙。 Suever我使用你的幫助...我得到了這個錯誤信息;:[非單元格數組對象的單元格內容引用] ...這是我的輸出(裁剪圖像)。順便說一句,我應該補充說,我的輸出變量是邏輯。請如何讓我的邏輯輸出爲單元陣列? –

+0

@OgwucheJoseph我的評論中沒有看到錯誤信息。請更新。 – Suever

+0

我收到錯誤「單元格內容參考從非單元格數組對象」... myoutput,這是一個邏輯變量,其中包含裁剪圖像 –

0

我將當前目錄存儲到一個變量像

curPath = cd; 
newPath = newDirectory; 
cd(curPath); 
cd newPath; 

在此之後,你的工作目錄是新的文件夾。運行循環來保存你的文件。

確保您正在迭代文件名。

+0

在MATLAB中最好不要使用'i'或'j'作爲循環索引http://stackoverflow.com/questions/14790740/using-i-and-j-as-variables-in-matlab – Suever

相關問題