这是我的代码:
myFolder = 'C:\Users\Authorised User\Documents\MATLAB\OilDropForceImages\OilDropForceImagesResized';
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.png');
pngFiles = dir(filePattern);
for k = 1:length(pngFiles)
baseFileName = pngFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
imageArray = imread(fullFileName);
imshow(imageArray, 'InitialMagnification', 77); % Display image.
drawnow; % Force display to update immediately.
end
A = imageArray;
vid0bj = VideoWriter('OilDropForceMovie.mp4','MPEG-4');
open(vid0bj);
writeVideo(vid0bj,A)
close(vid0bj)
代码在MATLAB中运行良好,并显示了我想要的内容,但是当我尝试将其另存为.mp4文件以便可以在Windows Media Player中播放时,收到错误消息:使用OilDropForceMovie(第22行)时出错 无法创建文件OilDropForceMovie.mp4。没有权限。 有人知道我在做什么错吗?
答案 0 :(得分:0)
由于该路径看起来像您正在使用Windows计算机,因此在打开Matlab时,请以管理员身份运行该程序。例如,如果您的桌面上有Matlab图标,请右键单击并选择“以管理员身份运行”
答案 1 :(得分:0)
几乎可以肯定的是,您在运行脚本时对活动文件夹中的任何一个都没有写权限。您应该执行的操作只是在调用VideoWriter
时指定一个完整路径,因此应该可以执行以下操作:
vid0bj = VideoWriter('D:\WritableFolder\OilDropForceMovie.mp4','MPEG-4');
答案 2 :(得分:0)
我也碰到了这个障碍。
这是由于重新运行脚本时MP4文件已经打开。我正在进行一些调试,并在重新启动脚本之前将其停止了一半,因此它没有在结尾处执行close命令。
我通过将这段代码放在脚本开头附近来解决了这个问题:
try
close(video_file);
catch
end