MATLAB文件操作的实例分析

本篇文章为大家展示了MATLAB文件操作的实例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

在旬阳等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站建设 网站设计制作按需定制制作,公司网站建设,企业网站建设,品牌网站设计,营销型网站建设,外贸网站建设,旬阳网站建设费用合理。

%% 图片批量截取

clear;

% 初始化参数

picdir = '../data/images/' ;  % 图片所在文件夹

picsave = '../result/';          % 截取图片保存文件夹

logfile = '../result/log.txt' ;  % 日志文件所在路径

momentfile ='../result/moment.xls'; % 图片一阶矩存储路径

% ‘../’表示当前目录的上一级

%% 日志文件初始化

fileID = fopen(logfile,'a+'); % 以追加的方式添加日志信息

loginfo =[datestr(now) '  ' '日志初始化完成']; % 日志信息

fprintf(fileID,'%s\r\n',loginfo);  %  写入日志信息

%% 图片名批量获取

inputfolder=dir(picdir);

isdirs=arrayfun(@(x) x.isdir,inputfolder);% 用匿名函数替代for循环

num=sum(isdirs==0);% 图片的数量

images=arrayfun(@(x) x.name,inputfolder, 'UniformOutput', false);

% 用匿名函数替代for循环,文件名字符串长度不统一需注意

images=images(isdirs==0);  % 图片名

% 另一种获取方法

fileFolder=fullfile(picdir);

dirOutput=dir(fullfile(fileFolder,'*.jpg'));

images={dirOutput.name}';

% 日志记录

loginfo =[datestr(now) '   ' '图片所在文件夹为:' picdir ...

    ',一共有' num2str(num) '个图片'];

fprintf(fileID,'%s\r\n',loginfo);

%% 图片批量截取和保存

rows = size(images,1);

moment = zeros(rows,3); % 初始化一阶矩变量

for i= 1:rows

    % 日志记录

    loginfo =[datestr(now) '   ' '正在处理第' num2str(i) ...

    '个图片,文件名为' images{i} ];

    fprintf(fileID,'%s\r\n',loginfo);

    imdata_i = imread([picdir images{i}]); % 读取图片文件

    [width,length,z]=size(imdata_i);

    subimage= imdata_i(fix(width/2)-50:fix(width/2)+50,...

        fix(length/2)-50:fix(length/2)+50,:); % 图片截取

    imwrite(subimage,[picsave images{i}]); % 保存图片

    % 计算截取图片的一阶矩

    subimage=im2double(subimage); % 数据转换

    firstmoment= mean(mean(subimage));% 一阶矩

    for j=1:3

        moment(i,j)=firstmoment(1,1,j);

    end

end

%% 保存数据 关闭日志文件

xlswrite(momentfile,moment); % 把一阶矩数据写入EXCEL文件

% 日志记录

loginfo =[datestr(now) '   ' '一阶矩数据已写入文件' ];

fprintf(fileID,'%s\r\n',loginfo);

fclose(fileID); % 关闭日志文件

上述内容就是MATLAB文件操作的实例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


新闻名称:MATLAB文件操作的实例分析
分享地址:http://pwwzsj.com/article/jpidjc.html