批量图像写入中的文件权限

时间:2016-06-17 20:45:56

标签: image matlab

所以我在matlab中编写一个代码来读取图像,在完成一个条件后将它们跟在它们后面。基本内核与此类似

destination_folder = 'Cropped Images';
mkdir(destination_folder);
for <initialization, terminating condition>
    ...
    ...
    while <condition>
          ....
          ....
          if <condition>
            .....
            .....
            image_name=image_name+1;
            img_name = [num2str(image_name) '.tif'];
            destination_path = fullfile(destination_folder, image_name);
            file_id = fopen(destination_path, 'w+');
            disp(img_name);
            imwrite(<variable>,destination_path,'TIF');
            fclose(file_id);
            end

     end

 end

当我运行时,我收到以下错误

Error using imwrite (line 454)
Unable to open file "Cropped Images/." for writing.  You might not have write permission.

Error in Rotacrop (line 65)
            imwrite(NAC,destination_path,'TIF');

此外,图像会生成一定数量,但它们的名称是随机的ascii字符

enter image description here

不确定这里的交易是什么

谢谢, Fowaz

1 个答案:

答案 0 :(得分:0)

您使用dir获得了图片列表。请注意,即使文件夹中没有任何文件夹,dir也将始终返回当前目录'.'和父目录'..'。显然fopen无法打开目录 '.'

您需要从dir结果中删除这些结果。

删除所有文件夹

files = dir(folder);
files = files(~[files.isdir]);

仅移除'.''..'

files = dir(folder);
files = files(~ismember({files.name}, {'.', '..'}));