필터 지우기
필터 지우기

imwrite filename

조회 수: 6 (최근 30일)
Diego
Diego 2011년 12월 29일
Dear all, How can I save an image with the file name being the value of a variable?
The following code works in exporting the image but not in assigning the file name the way I need.
R is the name of the variable...
Thanks, Diego
Matlab code
imwrite(X.cdata, 'R''.png')
  댓글 수: 4
Diego
Diego 2011년 12월 29일
... this way it takes the complete filename the first time but breaks when it loops:
imwrite(X.cdata, [R{l}, '.png'])
Muhammad Ghani
Muhammad Ghani 2012년 7월 1일
Let's say you are working in the loop, use the following for k=1:30 imwrite(filename, sprintf('name of the image to be stored_%d.png',k) ); end Hope that it helps. Ghani

댓글을 달려면 로그인하십시오.

채택된 답변

Diego
Diego 2011년 12월 29일
Thank you Fangjun and Image Analyst. Your tip Fangjun point me to the answer.
imwrite(X.cdata, [R{1}, '.png'])
Regards,
Diego

추가 답변 (3개)

Fangjun Jiang
Fangjun Jiang 2011년 12월 29일
R='MyImageFile';
imwrite(X.cdata,[R,'.png']);
  댓글 수: 6
Diego
Diego 2011년 12월 29일
Thank you Fangjun.
Yes i did that already, and it works the first time it loops, but then it breaks with a message ??? Index exceeds matrix dimensions.
Best,
Diego
Fangjun Jiang
Fangjun Jiang 2011년 12월 29일
That means you did more loops than the number of cells you have in R. Do the following to see the exact error message.
clear R;
R={'a','b','c'};
R{4}

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2011년 12월 29일
R = {'MyFileName.png'};
% Construct filename.
myFolder = 'D:\myImageFiles';
if ~exist(myFolder)
% mkdir(myFolder);
end
% Create character version of the cell.
charR = cell2mat(R);
% Create the full filename.
fullFileName = fullfile(myFolder, charR)
% Write out the image file to disk.
imwrite(imageArray, fullFileName);
  댓글 수: 2
Diego
Diego 2011년 12월 29일
Thank Image Analyst.
But this way it creates a file named 'MyFileName.png' and overwrites it over and over again.
Probably I'm doing something wrong...
Best,
Diego
Image Analyst
Image Analyst 2011년 12월 29일
Yes. What do you mean over and over again? You never said anything about this being in a loop where you need to change the filename inside the loop. If you do, use sprintf() to construct the filename. Or see the FAQ http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F if you got the filenames into a cell array from the dir() function.

댓글을 달려면 로그인하십시오.


Muhammad Ghani
Muhammad Ghani 2012년 7월 1일
Let's say you are working in the loop, use the following
for k=1:30 imwrite(filename, sprintf('name of the image to be stored_%d.png',k) ); end
Hope that it helps.
Ghani

카테고리

Help CenterFile Exchange에서 Images에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by