0

imwrite我正在尝试使用Matlab 中的函数将一系列图像写入文件夹。inputImg我首先使用给定的矩阵将输入图像 ( ) 裁剪为cropMatrix,然后将这些结果图像按顺序保存到文件夹中。我的代码如下:

for i = 1:n
    img = imcrop(inputImg,cropMatrix);
    fileName = sprintf('C:\Users\King_Knight\Desktop\Images\%02d',i);
    imwrite ( img, 'fileName', 'jpg');
end

然后文件夹完全是空的,它没有写出任何东西,除了我在 Matlab 工作区中收到一条警告消息说:

Warning: Escape sequence '\U' is not valid. See 'help sprintf' for valid escape sequences.

我已经搜索了互联网,但仍然无法解决。有人可以帮忙吗?谢谢。

4

3 回答 3

2

Matlab 中的*printf函数集将解释 C 风格的转义码,它总是以字符开头\。一个常见的问题当然是 Windows 使用反斜杠作为目录分隔符。

简单的解决方案是使用\\. 例如:

fileName = sprintf('C:\\Users\\King_Knight\\Desktop\\Images\\%02d',i);

将根据需要实际创建 string C:\Users\King_Knight\Desktop\Images\00

您可以在此处阅读相关文档。

请注意,在 Matlab 中,与 C 不同,这仅适用于函数fprintfsprintf。您不必为其他函数(例如disp.

于 2013-06-06T12:49:45.663 回答
1
clear all;
%%%% Image Read
%%

input_folder  = '..'; %  Enter name of folder from which you want to upload pictures with full path
output_folder = '..';
filenames = dir(fullfile(input_folder, '*.jpg'));  % read all images with specified extention, its jpg in our case
total_images = numel(filenames);    % count total number of photos present in that folder
Outputs=total_images;
dir=output_folder;

%%

%%
for i = 1:total_images
    full_name= fullfile(input_folder, filenames(i).name);     % it will specify images names with full path and extension
    our_images = imread(full_name);                           % Read images  
    figure (i);                                               % used tat index n so old figures are not over written by new new figures
    imshow(our_images);                                       % Show all images 
    I = our_images;
    I = imresize(I, [384  384]);   

   filename = [sprintf('%03d',i) '.jpg'];
   fullname = fullfile(output_folder,'output_folder',filename);
   imwrite(I,fullname)    % Write out to a JPEG file (img1.jpg, img2.jpg, etc.)


end

%%
于 2014-11-25T11:15:08.033 回答
0

如果要将图像写入目标文件夹,请在 MATLAB 中使用以下代码。

destinationFolder = 'C:\Users\Deepa\Desktop\imagefolder'; % Your folder path
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.

我希望这个答案可以帮助某人。

于 2018-03-06T06:45:05.577 回答