永发信息网

matlab 读取不同文件夹下不同图片,进行处理。

答案:1  悬赏:20  手机版
解决时间 2021-03-06 18:21
初学matlab,需要读取不同文件夹下不同图片,进行处理。
搜到了处理代码,但是有点看不懂。
我是要把不同文件夹下不同图片进行简单拼接。就是有图片A,图片B,图片C。得到D=[A,B,C].并且要保存新产生的图片D。保存的循环我也不太懂。请把这个加进以下代码好吗,谢谢。

clc; clear all; close all;
str = 'D:\\Image\\';
pt = dir(str);
foldname = []; k = 0;
for i = 1 : length(pt)
if strcmp(pt(i).name, '.') | strcmp(pt(i).name, '..')
continue;
else
k = k + 1;
foldname{k} = pt(i).name;
end
end
for i = 1 : length(foldname)
temp = strcat(str, foldname{i}, '\\*.jpg');
temp1 = dir(temp);
for j = 1 : length(temp1)
jpgpath{i, j} = strcat(str, foldname{i}, '\\', temp1(j).name);
end
end
celldisp(jpgpath);
最佳答案
不知道你从哪里找来这么一段代码,简单看了一下,这段代码的功能是,搜索指定文件夹的子目录中所有扩展名为jpg的文件,并把文件的路径名保存到jpgpath这样一个cell数组中,每行代表一个子目录。

存在以下问题:
1、这段代码并不包括你所说的拼接图片的功能。
2、第一个for循环的if语句没有考虑文件夹中除了子目录还可能有文件存在,这是一个很愚蠢的错误。
3、第二个for循环用来搜索各子目录中的jpg文件,并把文件的路径名保存在一个2维cell数组中。这个做法也是比较愚蠢的,因为各子目录中的jpg文件数量可能相差很多,这种存储方式不可取。

在现有代码基础上改写实现拼接图片的功能并不困难,但需要明确一些问题:
1、文件是否有顺序问题(按什么排序)?
2、纵向还是横向拼接?
3、如果各图片的宽(或高)不同,怎样处理?可选的方式至少有以下几种:
(1)按最大宽度,对于较小宽度的图片,不足部分以某种颜色填充;
(2)按最大宽度,对于较小宽度的图片,放大以适应最大宽度(又可区分是否锁定宽高比);
(3)按最小宽度,对于较大宽度的图片,剪切多余的部分(又可细分为保留哪个部分);
(4)按最小宽度,对于较大宽度的图片,缩小以适应最小宽度。
4、保存的文件怎样命名、保存在什么位置?可以考虑与子目录同名(加上jpg扩展名),存放在所指定的文件夹中(而不是子目录中)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
突出赵括母亲的成语
周公解梦梦到和小三儿吵架是好是坏
腰疼属于什么科
熬汤时加入香料粉浑汤?加入磨粉的或整颗的香
方会芬电话是多少?有朋友知道的。请告诉我。
【萧红和鲁迅什么关系】萧红和鲁迅是什么关系
瑶瑶冰淇淋我想知道这个在什么地方
姚屋地址有知道的么?有点事想过去
2017汉中事业单位笔试都考什么?
下列各项中,符合增值税纳税人放弃免税权有关
四十二再会打一字
电饭锅跳到保压是快要煮好了吗
干米粉注册商标属于哪一类?
淘宝网上的发型设计是骗子吗
下午我用排卵试纸测了,两条杠,我怀孕了吗?
推荐资讯
暖暖说狮子站在几千个新生前面做教头好酷是哪
证明a^n+b^n 能被p 整除 p=a+b p>n p是质数,n
远望数码城停车场(出入口)地址在什么地方,想
【九上历史知识点总结】九年级上册历史知识点
工业区西线路东三横路/X297(路口)怎么去啊,
急性上呼吸道感染主要的病原体为病毒,以下病
因为我不想无缘无故收别人的礼物是么意思?
平基村这个地址在什么地方,我要处理点事
魅蓝手机刷哪个系统好
物体的体积与它的质量成正比例对还是错?
华北电力大学北京校区和保定校区有差别吗?
8岁孩子总借口肚子痛不肯上学怎么办????
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?