温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MATLAB文件操作的实例分析

发布时间:2021-12-09 16:54:16 来源:亿速云 阅读:130 作者:柒染 栏目:大数据

本篇文章为大家展示了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文件操作的实例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI