24小时热门版块排行榜    

CyRhmU.jpeg
查看: 6068  |  回复: 9

dsfxlfqqq

新虫 (初入文坛)

[求助] matlab如何读取一个文件夹下的所有图片已有1人参与

有一个程序,需要分别用到一个文件夹下的1000张图片,也就是运行程序1000次。但我不想手动一次次更新。想设计一个自动读取程序。
for i=1:1000
    image = imread('i.jpg');
    mm=process(image)
end
但是问题是1000张图片名称并不是这样按顺序的1,2,3,4.。。现在我该怎么办呢?手动将1000张图片名称修改?(有更好的方法吗?)或者有没有什么办法不改变图像名字而读取?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

学无止境,得财兼币
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

953438452

木虫 (著名写手)


xiegangmai(金币+1): 谢谢应助! 2012-01-07 22:31:08
可以先定义1个数组,数组里面放图片名称。按照cells的顺序1 2 3 来读,但是你得判断上一副图像是否读完
2楼2012-01-06 20:58:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhfzh

木虫 (正式写手)


xiegangmai(金币+1): 谢谢参与! 2012-01-07 22:31:13
最好还是改名字吧
网上有批量改名的软件吧
3楼2012-01-07 08:52:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Krabe

金虫 (正式写手)

研一的师弟也不会呀,路过祝好
4楼2012-01-08 11:18:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weijason

木虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai(金币+2): 辛苦了!谢谢应助! 2012-01-24 20:10:30
我经常遇到这样的事情。以下是我编写的批量将jpg转化为bmp的matlab程序,里面就有读取一个文件夹下所有jpg文件的功能。
path1='F:\TDDownload\';
dir1=dir([path1,'\*.jpg']);
for i=1:size(dir1,1)
    filename=dir1(i).name;
    I=imread([path1,'\',filename]);
    imwrite(I,[path1,'\',filename(1:length(filename)-4),'.bmp'],'bmp');
end

如果图像文件有多种格式,可以修改通配符
5楼2012-01-23 09:48:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangyuewu08

木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xiegangmai(金币+2): 鼓励讨论交流! 2012-01-27 18:45:12
楼主先选中所有的图片,然后重命名为“图片”,这样处理的话,1000张图片的名称会变为“图片 (1)”到“图片 (1000)”。
这样读取的时候可以通过字符数组构成文件名,imread([‘图片 ’, num2str(i),‘.jpg’])。
重命名前最好保存一下副本,我在win7上进行过这种重命名。
往事并不如烟
6楼2012-01-27 09:27:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunskyqin

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by weijason at 2012-01-23 09:48:07
我经常遇到这样的事情。以下是我编写的批量将jpg转化为bmp的matlab程序,里面就有读取一个文件夹下所有jpg文件的功能。
path1='F:\TDDownload\';
dir1=dir();
for i=1:size(dir1,1)
    filename=dir1(i).name; ...

这个读进来的图片不是按照1,2,3,4.。。。的顺序读进来的
7楼2015-01-22 16:55:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

w_m_m

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by sunskyqin at 2015-01-22 16:55:45
这个读进来的图片不是按照1,2,3,4.。。。的顺序读进来的...

怎么才能按顺序读取图片呢
8楼2016-03-21 13:37:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

胡海浪

金虫 (小有名气)

【答案】应助回帖

拼接字符串。例如str=[num2str(i) '.fig']。这样写入循环,str的值依次就是你的字符串类型的“1~1000.fig”,其中num2str()是把数值型变为字符型,也可以在前面加上全路径的字符串,拼接到一起[str1 str2 str3 ……]

发自小木虫Android客户端
9楼2016-03-21 14:00:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
本帖内容被屏蔽

10楼2019-11-22 23:42:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dsfxlfqqq 的主题更新
信息提示
请填处理意见