如果不包含在工作目录中,也可以在Matlab中从其绝对路径加载图像

时间:2015-06-14 18:31:51

标签: matlab

我有图像myabspath

的绝对路径
D:\myimages\venus\surface\im0012.jpg

我试过了

im=imread(myabspath); 

但不起作用,因为似乎imread只接受当前工作目录中文件的名称。

我也试过

f=load(myabspath);

但是得到一个错误“参数必须包含一个字符串”。

似乎是一个非常基本的操作,但遗憾的是我还没有找到解决方案。

修改 似乎问题是由myabspath不是常规字符串而是cell引起的,我试图使用 myabspath=cellstr(myabspath) 但我继续收到错误,告诉我myabspath不是字符串,但如果我打电话

display(myabspath) 

我看到了正确的道路。任何解决方案?

2 个答案:

答案 0 :(得分:2)

看起来很奇怪。

您是否收到特定的错误消息?

图像确实存在吗?

您是否也可以编写一个“您自己的”imread函数来覆盖“MatLab”函数?

根据MatLab(R2012b)的帮助,imread也接受“完整路径名”

  

imread从图形文件中读取图像。       A = imread(FILENAME,FMT)从文件中读取灰度或彩色图像       由字符串FILENAME指定。 如果文件不在当前       目录,或在MATLAB路径上的目录中,指定完整       路径名

我已经复制了你的文件夹结构,我没有把它添加到MatLab路径,但是我已经能够通过指定完整的路径名来读取imread的图像。

这是我得到的输出:

>> myabspath='D:\myimages\venus\surface\im0012.jpg'

myabspath =

D:\myimages\venus\surface\im0012.jpg

>> im=imread(myabspath);
>> whos
  Name             Size                Bytes  Class    Attributes

  im             421x500x3            631500  uint8              
  myabspath        1x36                   72  char    

答案 1 :(得分:2)

如果您的cell包含字符串路径,则不需要进行任何转换,只需使用{index}访问该单元格的内容即可。

例如 如果你必须使用myabspath{1}

获得第一个元素

imread能够从绝对路径中读取图像