在matlab中访问特定文件夹中的图像

时间:2015-01-09 01:30:17

标签: matlab image-processing

有人可以向我解释下面的代码不起作用吗?

myFolderdepth = 'C:\Users\owner\Desktop'; %Specify Directory to get image from
Depth = dir (fullfile(myFolderdepth,'shower_depth','*.png'))%%Get images from file named     shower_depth
Depth_name = {Depth.name}'; %gets the name
figure;
imshow(Depth_name{3})

我得到的错误信息如下: 使用getImageFromFile时出错(第11行) 找不到指定的文件: " Depth_003.png"

我正在使用的目录是:C:\ Users \ owner \ Desktop

图片名称为Depth_001,Depth_002,Depth_003,......

奇怪的是,我有另一个包含图片的文件夹,如果我改变了' shower_depth'到其他文件夹名称,它工作正常。

谢谢! P.S我做了一些进一步的实验,结果是因为图像的命名方式;如果它的Depth_01.png很好用,但是Depth_001.png不行

任何人都知道为什么?

2 个答案:

答案 0 :(得分:3)

以下命令:

Depth = dir (fullfile(myFolderdepth,'shower_depth','*.png'))

仅获取文件的相对名称。这意味着仅检索文件名,不是文件的完整路径。看一下你得到的错误:

  

使用getImageFromFile时出错(第11行)

     

找不到指定的文件:"Depth_003.png"

您是否看到上述文件名中图片的位置路径?不!您只能看到存储在目录中的文件。您需要指定图像所在的完整路径。

您需要做的是将目录以及图像本身附加为您提供给imshow的字符串:

myFolderdepth = 'C:\Users\owner\Desktop'; %Specify Directory to get image from
Depth = dir (fullfile(myFolderdepth,'shower_depth','*.png'))%%Get images from file named     shower_depth
Depth_name = {Depth.name}'; %gets the name
figure;
imshow(fullfile(myFolderDepth, Depth_name{3})); %// CHANGE HERE

答案 1 :(得分:-1)

Depth_name只是图片名称。您必须在显示之前阅读图像。修改后的代码如下:

im = imread(Depth_name{3});
imshow(Depth_name{3});