i want to save names of the images(frame_0000, frame_0001, frame_0003........) in a text file by reading them from a folder.
2 次查看(过去 30 天)
显示 更早的评论
i want to save names of the images(frame_0000, frame_0001, frame_0003........) in a text file by reading them from a folder. somehow i am getting errors while writing the code. As i am new to MatLab please help me. Waiting for your response.
1 个评论
Geoff Hayes
2018-8-14
sidra - somehow i am getting errors while writing the code. What is the code? What are the errors?
采纳的回答
Stephen23
2018-8-14
编辑:Stephen23
2018-8-14
D = 'directory where images are';
S = dir(fullfile(D,'*.jpg'));
% Save filenames:
[fid,msg] = fopen('names.txt','wt');
assert(fid>=3,msg)
fprintf(fid,'ImageName\n')
fprintf(fid,'%s\n',S.name)
fclose(fid);
% Load files:
for k = 1:numel(S)
Im = imread(fullfile(D,S(k).name));
...
end
This uses S.name to generate a comma-separated list, and so each filename gets printed to the textfile.
9 个评论
Stephen23
2018-8-15
编辑:Stephen23
2018-8-15
@sidra Rafique: your code duplicates printing the filenames, and you need to add a separator/delimiter character between the filename and the value. Try something like this:
c = {S.name};
c(2,:) = num2cell(d);
[fid,msg] = fopen('names.txt','wt');
assert(fid>=3,msg);
fprintf(fid, '%s,%s\n','Imagename','Diameter');
fprintf(fid, '%s,%3.4f\n',c{:});
fclose(fid);
Note how I used the comma as a delimiter, and the filenames are included in c, so you do not need to print them again.
更多回答(1 个)
Yuvaraj Venkataswamy
2018-8-14
Check below link. https://in.mathworks.com/matlabcentral/answers/333532-how-to-extract-and-save-frames-in-a-video
In your case you can use below command.
if true
imwrite(frames, fullfile(f_folder,sprintf ('%frame_04d.jpg', nFrame)));
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Environment and Settings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!