【发布时间】:2015-06-23 08:45:18
【问题描述】:
我正在使用下面提到的代码根据图像的 id 从 images_1 文本文件中获取图像的文件名作为字符串,并使用它们从其目录中读取图像
image_count=1;
for image_count=1:6
file=fopen('D:\Academics\New folder\CUB_200_2011\images_1.txt','r');
C = textscan(file, '%s');
original_image=imread('D:\Academics\New folder\CUB_200_2011\images\%s','C{1}{2*(image_count)}');
imshow(original_image)
end
我能得到文件名但不能使用它。 此代码显示以下错误-
'文件“D:\Academics\New folder\CUB_200_2011\images\%s”不存在。
我对matlab有点陌生,谁能帮帮我。
【问题讨论】:
-
您的文件名是如何存储在 images_1.txt 中的?它们是否包含图像的完整路径或仅包含文件名(例如:“image_2.png”等)?
-
它们实际上是像这样给出文件夹名称和文件名称的完整路径-01.Black_footed_Albatross/Black_Footed_Albatross_0046_18.jpg
-
%s中的imread构造不会被第二个参数替换。使用strcat连接路径和文件名。所以你可以这样调用:imread(strcat('D:\Academics\New folder\CUB_200_2011\images\',C{1}{2*(image_count)})) -
@Matt 这就是我的想法,所以我说要使用
sprintf。但我想还有更多问题。 -
但是 strcat 也不起作用,它显示-文件“D:\Academics\New folder\CUB_200_2011\images\%s001.Black_footed_Albatross/Black_Footed_Albatross_0046_18.jpg”不存在。它没有取代 %s