我有图像myabspath
D:\myimages\venus\surface\im0012.jpg
我试过了
im=imread(myabspath);
但不起作用,因为似乎imread
只接受当前工作目录中文件的名称。
我也试过
f=load(myabspath);
但是得到一个错误“参数必须包含一个字符串”。
似乎是一个非常基本的操作,但遗憾的是我还没有找到解决方案。
修改
似乎问题是由myabspath
不是常规字符串而是cell
引起的,我试图使用
myabspath=cellstr(myabspath)
但我继续收到错误,告诉我myabspath
不是字符串,但如果我打电话
display(myabspath)
我看到了正确的道路。任何解决方案?
答案 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
能够从绝对路径中读取图像