2012-08-15 302 views
1

我嘗試將圖像寫入文件夾,但imwrite沒有指定文件夾名稱的輸入。有沒有其他的功能。或將圖像存儲到文件夾的方式。如果我這樣做,我可能會僞裝,我很抱歉。通過Matlab中的imwrite將圖像寫入文件夾

當我使用一個文件名參數,如「文件夾1 /文件夾2/img.jpg」它並沒有相應地創建文件夾,它只是創建一個命名爲「文件夾1 /文件夾2/img.jpg」

我也文件嘗試提前使用mkdir,但它也會在控制檯上提供「Permission Denied」權限。

順便說一下,我使用Linux。可能是關於權限問題?

+0

使用'pwd'來找出你在哪個目錄。你有寫權限嗎? – Jonas 2012-08-15 16:34:51

回答

11

filename參數並不意味着只是名稱 - 您可以給它一個絕對或相對路徑作爲字符串的一部分。

imwrite(img,'my/folder/images/file','jpg') 

例如。

+0

當我這樣做時,它會創建一個名爲「my/folder/images/file.jpg」的文件,它不會創建文件夾accoradingly – 2012-08-15 16:26:59

+0

提前創建文件夾(如果它尚不存在) - 您可以使用[mkdir](http://www.mathworks.com/help/techdoc/ref/mkdir.html) – tmpearce 2012-08-15 16:30:03

+0

我剛剛使用mkdir,但它在控制檯上給出了「權限被拒絕」。 – 2012-08-15 16:32:08

1

該文件夾只會在文件名中指定,這樣

imwrite(img, 'folder1/filename.tif','tif'); 

,或者如果你想使用絕對路徑。

imwrite(img, 'C:/Users/UserName/folder1/filename.tif','tif'); 

查看關於absolute and relative paths的維基百科。

-1

這將打開新圖選擇路徑和格式。

[文件名,分機,user_canceled] = imputfile

enter image description here

0

如果你想要寫的圖像轉換成目標文件夾中使用下面的代碼在MATLAB。

destinationFolder = 'C:\Users\Deepa\Desktop\imagefolder'; 
if ~exist(destinationFolder, 'dir') 
    mkdir(destinationFolder); 
end 
baseFileName = sprintf('%d.png', i); % e.g. "1.png" 
fullFileName = fullfile(destinationFolder, baseFileName); 
imwrite(img, fullFileName); % img respresents input image. 

I hope this answer might help someone.