kinect图像序列名存储在文件 rgb.txt中,格式为
1305031102.175304 rgb/1305031102.175304.png
1305031102.211214 rgb/1305031102.211214.png
1305031102.243211 rgb/1305031102.243211.png
1305031102.275326 rgb/1305031102.275326.png
1305031102.311267 rgb/1305031102.311267.png
1305031102.343233 rgb/1305031102.343233.png
1305031102.375329 rgb/1305031102.375329.png
1305031102.411258 rgb/1305031102.411258.png
1305031102.443271 rgb/1305031102.443271.png
1305031102.475318 rgb/1305031102.475318.png
1305031102.511219 rgb/1305031102.511219.png
1305031102.543220 rgb/1305031102.543220.png
1305031102.575286 rgb/1305031102.575286.png
1305031102.611233 rgb/1305031102.611233.png
1305031102.643265 rgb/1305031102.643265.png
对应的图像存储路径为:D:\Matlab练习\rgbd_dataset_freiburg1_xyz\rgb
图像对应文件名为(以第一张图像为例):1305031102.175304.png
目的:从rgb.txt中提取出rgb/1305031102.175304.png ,使用imread()读取对应图像
步骤:
1、使用textread('rgb.txt',%s)读取文件内容
注:若不加 %s 则会出现如下错误
>> textread('rgb.txt')
??? Error using ==> dataread
Trouble reading number from file (row 1, field 2) ==> rgb/1305031102.175304.png\n
Error in ==> textread at 177
[varargout{1:nlhs}]=dataread('file',varargin{:});
读取:
ss=textread('rgb.txt','%s');
ss1=ss(2:2:200,1);
s=ss1(k); %k:表示第k张图像
2、提取图像存储路径:
sequencePath = 'D:\Matlab练习\rgbd_dataset_freiburg1_xyz\';
3、连接存储路径和文件名
s1=strcat(sequencePath,s);
注:这里连接后的s1不能直接用于imread的输入,因为此时s1属于单元格形式,需要转换为字符串
直接用出现的错误
>> s1=strcat(sequencePath,s)
s1 =
'D:\Matlab练习\rgbd_dataset_freiburg1_xyz\rgb/1305031102.175304.png'
>> imread(s1)
??? Conversion to logical from cell is not possible.
Error in ==> imread at 282
if (strfind(filename, '://'))
4、转换为字符串
im=char(s1);
5、读取序列图像
imread(im);
大功告成!