liuyh 发表于 2006-6-6 08:24

[求助]怎样从一个文件夹中连续自动地读取多幅图片啊?

毕业设计求助,怎么从一个文件夹中自动地连续读取多幅图片呢?<BR>imread只能读取一幅,并且imread读取的图片是人为地赋值给的。<BR>曾经设想用for循环如下:<BR>for i=0:9<BR>   I = imread('i.jpg');<BR>   figure(i+1);<BR>   imshow(I);<BR>end<BR>但是运行后发现,imread把i.jpg当成图像名了,根本达不到让i从0到9的变化。<BR>哪位大虾有好的办法,能告诉我吗?<BR>先谢谢了!!!

liuyh 发表于 2006-6-6 09:56

大家帮帮我啊<BR>在线等

iewoug 发表于 2006-6-6 10:08

figure(i+1);<BR>这个是做什么的

bainhome 发表于 2006-6-6 10:14

q:
我作了个200次的for循环,
每次均需输出一幅图像,有没有自动将图像输出成jpg格式、所有的图片存于一个文件夹中的办法?
另外每次还输出一个数值,可不可以将200个数值输出到一个excel表中?
谢谢各位!
a:
% matlabwy
for k=1:200;
R=rand(200);
imwrite(R,['Liu',num2str(k),'.jpg']);
r=rand;
d(k)=r;
end
dd=d';
save liu.xls dd -ASCII

q:
谢谢,但是我看了一下,imwrite处理的好像必须是数字矩阵,
因为我处理的需要拟合,我画图时使用了 hold on(先画出散点图,再hold on,画出拟合直线),而且200张图片必须加上各自的标题作为标注,还有格网,这又如何处理呢?可不可以把Figure中已画好的图像保存成jpg格式呢?

谢谢!
a:
象下面这样就可以了

% 批量保存图片和数据的例子
if ~exist('liu')
mkdir('liu')
end
paths=;
for k=1:3;
figure;
R=rand(200);
imshow(R,[]);
axis on
saveas(gcf,);
close
r=rand;
d(k)=r;
end
dd=d';
save liu.xls dd -ASCII================================================
萝卜的做法,个人比较推荐

liuyh 发表于 2006-6-6 10:17

<DIV class=quote><B>以下是引用<I>iewoug</I>在2006-6-6 10:08:39的发言:</B><BR>figure(i+1);<BR>这个是做什么的</DIV><BR>对每一幅将要显示的图像,产生一个空白的显示界面,以免让后面的图像把前面的图像覆盖。我的这个程序只是测试一下能否把多幅图像连续地读出

liuyh 发表于 2006-6-6 10:39

谢谢bainhome的提示

我在 [公告]振动论坛FAQ(1.0版)之Matlab---pdf版 中找到答案了

现把方法粘在下面:(原文引用)

Q:如何在matlab 中实现将图片文件夹下的图片连续读取,并显示
A:例如当前目录下有n个jpg文件要显示,如果不是当前目录加个路径也很容易,这里就不再考虑这个问题了
filename=dir(*.jpg);
那么第i个文件的文件名就可以表示为< BR>filename(i).name
下面怎么读取,怎么显示就不用说了吧

NASA 发表于 2006-6-6 10:53

回复:(liuyh)[求助]怎样从一个文件夹中连续自动地读...

论坛还是有不少好东西的,这个问题我见过好多帖子了

[ 本帖最后由 花如月 于 2007-7-30 20:12 编辑 ]

myanchor 发表于 2006-6-23 21:53

回复:(liuyh)[求助]怎样从一个文件夹中连续自动地读...

好贴!<BR>谢谢,从中受益!

neugsq 发表于 2006-6-23 23:49

<P>同问</P>

xuebx 发表于 2006-6-24 12:59

多谢分享,欢迎大家积极发表原创帖

wj118 发表于 2006-7-19 11:02

此贴为重复贴,原来都有多人问过,给出了详细解决方法的.

qzyxm 发表于 2006-7-27 13:33

受益非浅

qzyxm 发表于 2006-7-27 14:19

好贴

yangyi 发表于 2007-7-30 19:56

我还是不太明白怎么读取的,那位大哥大姐受累讲讲可以么,谢谢了

花如月 发表于 2007-7-30 20:28

回复上楼

filename=dir('*.jpg');
for i=1:length(filename)
if i>3%只显示前3副
break;
else
I=imread(filename(i).name);
figure,imshow(I);
end
end
页: [1]
查看完整版本: [求助]怎样从一个文件夹中连续自动地读取多幅图片啊?