有人可以向我解释下面的代码不起作用吗?
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不行
任何人都知道为什么?
答案 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});