Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-02-14, 10:42   #1
xiami0532
初级会员
 
注册日期: 2009-02-14
年龄: 40
帖子: 3
声望力: 0
xiami0532 正向着好的方向发展
默认 讨论图像读取问题

大家好,我现在有一个问题,想和大家讨论一下。
我知道单幅图像读取可以用imread读取,也知道在同一文件夹下读取多幅图像的批处理。
现在我想请问,在matlab中能否自动读取带有多层文件夹下的文件,譬如
一层文件夹为A,二层文件夹是1和2两个文件夹,文件夹1中有2幅图像,文件夹2中有3副图像,也就是路径为C:\A\1\11.bmp,C:\A\1\12.bmp,C:\A\2\21.bmp.......
当然前提是只需要修改一次就足够了,不用每次都修改路径~
xiami0532 当前离线   回复时引用此帖
旧 2009-03-02, 08:47   #2
linkingoo
初级会员
 
注册日期: 2009-01-16
年龄: 41
帖子: 5
声望力: 0
linkingoo 正向着好的方向发展
默认 回复: 讨论图像读取问题

请问如何在同一文件夹下读取多幅图像的批处理?
linkingoo 当前离线   回复时引用此帖
旧 2009-03-02, 09:51   #3
wangxiuyuan
初级会员
 
注册日期: 2009-03-02
年龄: 35
帖子: 10
声望力: 17
wangxiuyuan 正向着好的方向发展
默认 回复: 讨论图像读取问题

就是拼字符串吧,设一个base_name='C:\A\'; 后面要什么就接上去。

同一个文件夹下读取多个图像也一样,比如图像是a_1.bmp, a_2.bmp,写一个循环,然后拼起来 ['a_' num2str(i) '.bmp']就把所有的文件读出来了
wangxiuyuan 当前离线   回复时引用此帖
旧 2009-03-03, 16:54   #4
linkingoo
初级会员
 
注册日期: 2009-01-16
年龄: 41
帖子: 5
声望力: 0
linkingoo 正向着好的方向发展
默认 回复: 讨论图像读取问题

引用:
作者: wangxiuyuan 查看帖子
就是拼字符串吧,设一个base_name='C:\A\'; 后面要什么就接上去。

同一个文件夹下读取多个图像也一样,比如图像是a_1.bmp, a_2.bmp,写一个循环,然后拼起来 ['a_' num2str(i) '.bmp']就把所有的文件读出来了
可是这样的话 imread('a_' num2str(i)'.bmp') 本身就是错的啊! 也不能这么用啊!单引号里直接读取的就是字符串,而不是num2str(i) 的命令!
linkingoo 当前离线   回复时引用此帖
旧 2009-03-03, 23:20   #5
wangxiuyuan
初级会员
 
注册日期: 2009-03-02
年龄: 35
帖子: 10
声望力: 17
wangxiuyuan 正向着好的方向发展
默认 回复: 讨论图像读取问题

这个命令不能用imread直接读取,它只是定义了文件名字符串而已。举个例子:
filename = ['a_' num2str(i) '.BMP'];
img=imread(filename);
wangxiuyuan 当前离线   回复时引用此帖
旧 2009-03-03, 23:23   #6
wangxiuyuan
初级会员
 
注册日期: 2009-03-02
年龄: 35
帖子: 10
声望力: 17
wangxiuyuan 正向着好的方向发展
默认 回复: 讨论图像读取问题

或者你写 imread( ['a_' num2str(i) '.bmp'])应该也可以,中括号这里很重要,不能漏掉
wangxiuyuan 当前离线   回复时引用此帖
旧 2009-03-09, 16:54   #7
xiami0532
初级会员
 
注册日期: 2009-02-14
年龄: 40
帖子: 3
声望力: 0
xiami0532 正向着好的方向发展
默认 回复: 讨论图像读取问题

在同一路径下的同一个文件夹里面连续读取多幅图像的程序可以参考如下:
cd C:\image \\假设文件夹是C盘下的image文档
cd_name='C:\image';
dat=stuct2cell(dir);
[m,n]=size(dat);
for i=1:n
name=dat(1,i);
name_str=name{1,1};
len_test=length(name_str);
if len_test>3%%判断是不是所包含的单元是不是3个字符以上
name_str_test=name_str(len_test-2:len_test);
else
name_str_test=name_str;
end
if strcmp(name_str_test,'bmp') || strcmp(name_str_test,'jpg')||strcmp(name_str_test,'BMP')||strcmp(name_str_test,'tif')%%比较后三位是不是所需要的文件格式
FILENAME0=strcat(cd_name,'\',name_str);
J0=imread(FILENAME);
end
end
xiami0532 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]图像匹配问题 youshi509 MATLAB论坛 1 2009-02-27 11:10
[分享]matlab/simulink超级好网站推荐 rstsing MATLAB论坛 1 2009-01-30 13:10
求关于矩阵转换的问题,谢谢你们的帮助 beyond_402 MATLAB论坛 2 2008-12-10 18:51
[求助]这个问题可以用GA来解决吗? lintan_kid MATLAB论坛 0 2008-11-26 06:19
[讨论]各位高手有谁试过C#成功调用matlab的神经网络工具箱吗? beardgh MATLAB论坛 0 2008-10-31 16:12


所有时间均为北京时间。现在的时间是 23:43


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.