最近在写MATLAB的几个程序 首先的感觉是 这个东西包含的东西太多了 自己没有太多耐心 写什么程序都想在规定的时间写出来 恩 我要做出计划 这样才不会着急 3号来的山西 这里的夏天真凉快 回去要做读书报告 还有师兄的飞机 比较忙 最近。 说一下这两天 matlab中遇到的问题吧
车牌识别问题比较麻烦 目前总结几条
第一 对MATLAB用的不熟 参数输入不足 是函数调用的问题 是去子程序中找的错误 结果调通了
第二 MATLAB 程序和要调用的文件(如TXT)文件 要写在一个文件夹里 (有时间 还是去看看MATLAB 的视频吧)
第三 现在的图片识别 可以把对应的要提取的东西提取出来了 但是对于下一步的比对 出现了问题 两幅图片对比的时候维度出现不符合
下面说一下
项目上有一个程序,要每次输入TXT文件的名字并且出图的时候手动保存成要求格式 因为一个一个做的话 很麻烦 所以想改进一下
程序的几点问题:
第一 matlab批量出图
第二 matlab的批量保存
第三 读取文件夹中的文件名以及字符串的截取
第一个 肯定是循环来做,调试的时候 用msgbox 输出变量的办法来输出变量(原谅我 用这种方式 ) 先尝试能在原程序的基础上把文件的名字读出来 文件是 数字.txt 数字不是连续的 改了几句就 实现了批量出图
第二个 批量保存 在搜索的时候 搜的是MATLAB批量保存图片 找到两篇不错的博客
引用块
内容作了个200次的for循环, 每次均需输出一幅图像,有没有自动将图像输出成jpg格式、所有的图片存于一个文件夹中的办法? 另外每次还输出一个数值,可不可以将200个数值输出到一个excel表中?
[@more@]
if ~exist('liu')
mkdir('liu')
end
paths=[pwd,'liu'];
for k=1:3;
R=rand(200);
imwrite(R,[paths,'Liu',num2str(k),'.jpg']);
r=rand;
d(k)=r;
end
dd=d';
save liu.xls dd -ASCII
plot、mesh、surf等函数绘图的保存:
if ~exist('liusir','dir')
mkdir('liusir')
end
paths=[pwd,'liusir'];
for k=1:3;
plot(1:100,rand(1,100));
saveas(gcf,[paths,'Liufig',num2str(k),'.jpg']);
r=rand;
eval(['save ',paths,'liudat',num2str(k),'.xls r -ASCII']);
end
在处理程序中有时需要保存一系列图形文件,下面给出一个程序结构.
for k=1:N;
statements saveas(gcf,['Pic',num2str(k),'.emf');
pause(1); % To wait a moment for observing
end
=========================================
其中emf格式的图片支持放缩不变,建议大家使用这样的图片文件格式
matlab批量绘图
1、print 最常用 可作为日常绘图的首选。对格式,分辨率等各项指标做非常细致的定义,适合直接出图。
2、saveas,偶尔用 虽然说保存的图像都是默认大小,无法更改,但关键是可以保存fig图像
saveas可以保存matlab自认的fig格式的图像,也就是说,对于将来有可能需要细致修改以方便发表论文的图像,保存为fig更适合。毕竟,有时候各期刊杂志对图像命名及色彩等要求不一,甚至我们绘图有时也会有这样那样的疏忽,而有的图像也不是一下就可以做出来的,保存fig图像用来最后细修很有意义。3、imwrite :不常用。 与getframe
结合使用,适合于保存截图,当机器运行速度变慢时,批量成图可能会有错误。他的优点在于可以为下一步做movie或gif动图做准备批量制图时常用命令: mkdir,生成目录 filename = [‘image\figure’, sprintf(‘%02d’,nn)]
plot(Data_Out2);title(Dataname1)
saveas(gcf,fig_name,’fig’);%saveas(gcf,文件名称,’文件格式’);
pause(1); % To wait a moment for observing
saveas(gcf,文件名称,'文件格式'); gcf 我觉得是获取polt的句柄(不知道对不对,欢迎讨论)
**第三个** 读取文件夹中的文件名以及字符串的截取
因为用for循环的时候 会遇到数字不连续的情况 加入判断太麻烦 所以就想能不能 读取文件夹中的文件名
file=dir(’ 文件路径.文件格式’);%输入文件路径
按F1 从帮助文档中 知道这个的使用方法 存于file的list中 从其name 中得到其文件名 当然还有其他属性
Dataname1=file(n).name;
在保存图片的时候 出现错误,因为 与那里
saveas(gcf,file(n).name,'fig');%%想了一下认为是file(n).name中 为XX.txt 带文件后缀
所以就想找 matlab有没有文件截取函数 没找到 最后实现的方式是
s_length=length(Dataname1);
fig_name=Dataname1(1:s_length-4);
“`
调试时同样用到了MSGBOX
结论 F1真好用