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

Accessing image from a specific folder in matlab

有人可以向我解释一下下面的代码有什么问题吗?

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 不行

有人知道为什么吗?

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

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

以下命令:

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

仅获取文件的相对名称。这意味着只检索文件名,而不是文件的完整路径。查看您遇到的错误:

Error using getImageFromFile (line 11)

Cannot find the specified file: "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