Welcome to exchange and study!
The following code is based on Matlab 2018b.
%% ================================================== %% save the results [FileName, PathName] = uiputfile({'*.img';'*.mat';'*.m';'*.slx';'*.*'},'Save The Result Images As'); % 对文件保持窗口选择是否保存进行判断 if isequal(FileName,0) || isequal(PathName,0) disp('User pressed cancel') else disp(['Save The Result Images As: ', fullfile(PathName, FileName)]) savefile_name=strcat(PathName,FileName); % disp('Save The Result Images As:'); % disp(savefile_name); % 利用matlab自带multibandwrite函数将矩阵转换成tif文件格式,第一个参数gt是需要写入的矩阵,第二参数为存储路径和命名 multibandwrite(result_img,char(savefile_name),'bsq','machfmt','ieee-le','precision','double'); % 注意:此处表名,gt为double精度的tif格式 %%============Here is the HDR file generation program================= % generate *.hdr file h1='ENVI'; h2='description = { Binary Data }'; h3=['samples = ',num2str(cols)]; % 使用矩阵形式,可以将空格写入TXT文本文件中,使用strcat则无法写入空格 h4=['lines = ',num2str(rows)]; h5=['bands = ',num2str(bands)]; h6='header offset = 0'; h7='file type = ENVI Standard'; h8='data type = 5'; h9='interleave = bsq'; h10='sensor type = Unknown'; h11='byte order = 0'; h12='wavelength units = Unknown'; h={}; h={h1;h2;h3;h4;h5;h6;h7;h8;h9;h10;h11;h12}; if ~isempty(strfind(FileName,'.'))==0; fid=fopen(strcat(PathName,strcat(FileName,'.hdr')),'wt'); else hdr_nam=FileName(1:end-4); hdr_name=strcat(hdr_nam,'.hdr'); fid=fopen(strcat(PathName,hdr_name),'wt'); end for i=1:12; fprintf(fid,'%s\n',h{i}); end fclose(fid); % save all results save(strcat(PathName,'result_BilaterFilter.mat')) end %% ===================================================