MATLAB:尝试创建.mp4文件时权限被拒绝

时间:2018-07-25 09:15:52

标签: matlab mp4

这是我的代码:

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。没有权限。 有人知道我在做什么错吗?

3 个答案:

答案 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