求一段MATLAB图像批量处理和数据的存储的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求一段MATLAB图像批量处理和数据的存储的代码相关的知识,希望对你有一定的参考价值。

我有大概五万张图片需要处理,图像处理的函数已经编好了,现在还有两个问题请高手解决:1、求一段MATLAB图像批量处理的代码,让计算机自动读取并处理这些图片 2、我的函数里每次都会产生15个变量,我希望每处理完一张图片后得到的函数值都可以自动保存到一个EXCEL表格里,当然还希望生成一个变量存储每次被处理图像的名字,函数应该怎样改进。到最后我需要的就是这个维数为50000*16(包括图像名)EXCEL表格里的数据。请高手帮忙,分不多,谢谢。

参考技术A 首先保证要处理的图像文件名为数字序列,例如photo-1,photo-2,……
%Start
name=zeros[50000,20];%文件名矩阵
numb=zeros[50000,15];%需求数据矩阵
for
i=1:50000
filename=strcat('filepath\','photo-',int2str(i));%生成文件名
name(i,:)=filename;%保存文件名
I=imread(filename,'jpg');
%自编函数处理
numb(i,:)=a
;%
a为自编函数中返回的1*15矩阵,这个应该会吧
dlmwrite('filename1.txt',name
,'delimiter','
','newline','pc');
dlmwrite('filename2.txt',numb
,'delimiter','
','newline','pc');
end
程序将你需求的数据保存为50000*16的txt格式,你再复制到excel中就可以了,matlab与excel好像没有接口,不能直接链接。

使用matlab批量处理图像后在指定文件夹存储

使用matlab批量处理图像后在指定文件夹存储

clear;clc;close all;
Files=dir(D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jpg);
N=length(Files);
Names={};
Images={};

for k=1:N
    
        Names{k}=Files(k).name;
        Images{k}=imread([D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\‘ Names{k}]); 
        
figure(k)
    imshow(Images{k})
end

其实没必要将读取的图片存为元胞数组!

即,将上面的Images={}撤销,直接存入B矩阵中即可!

B=

imread([‘D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\‘ Names{k}]); 


新的mytest.m文件代码:
clear;clc;close all;
Files=dir(D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak2\*.jpg);
N=length(Files);
Names={};
% Images={};

for k=1:N
    
        Names{k}=Files(k).name;
        B=imread([D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak2\‘ Names{k}]); 
        figure(k)
        imshow(B)
%       imwrite([B,strcat([D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak3\‘ Images{k}]),jpg]);
        path=D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak3\‘; 
        file=Files(k).name; 
        pathfile=fullfile(path,file); 
        imwrite(B,pathfile,jpg);
end


 

 fullfile函数

利用文件各部分信息创建合成完整文件名。

用法:
fullfile(‘dir1‘, ‘dir2‘, ..., ‘filename‘)
 
f = fullfile(‘dir1‘, ‘dir2‘, ..., ‘filename‘)
解释:若文件‘100.hea‘ 的路径为‘D:\matalab\xindianshuju\wenjian\100.hea‘,
那么 ‘dir1‘=‘D:‘;‘dir2‘=‘matlab‘;‘dir3‘=‘xindianshuju‘;‘dir4‘=‘wenjian‘;‘filename‘=‘100.hea‘
 
 
1.根据磁盘名、目录名和文件名创建完整文件名
f = fullfile(‘C:‘, ‘Applications‘, ‘matlab‘, ‘myfun.m‘)
f =
C:\Applications\matlab\myfun.m
2.下面的两个例子在UNIX平台下产生相同的结果,但只有第二个例子能在所有平台上工作。
>>fullfile(matlabroot, ‘toolbox/matlab/general/Contents.m‘)
fullfile(matlabroot, ‘toolbox‘, ‘matlab‘, ‘general‘,‘Contents.m‘)
ans =
D:\Program Files\MATLAB\R2008a\toolbox\matlab\general\Contents.m
ans =
D:\Program Files\MATLAB\R2008a\toolbox\matlab\general\Contents.m
 

Matlab中连续读入并处理图像,然后保存至指定文件夹下-dir,strcat,fullfie,imread,imwrite - super771的专栏 - CSDN博客 http://blog.csdn.net/super771/article/details/7345667

以上是关于求一段MATLAB图像批量处理和数据的存储的代码的主要内容,如果未能解决你的问题,请参考以下文章

使用matlab批量处理图像后在指定文件夹存储

写一段代码画出一个图像的灰度直方图(不能用MATLAB自带的imhist函数),并作直方图均衡化处理。

matlab如何求一副图像的信噪比SNR与均方根误差RMSE

matlab 怎么批量保存数据

matlab 有没有截取图像另存的功能

求一段运用matlab把俩个声音文件混合成一个文件的程序!我只会编写一小段声音读取和播放的程序。混合就不会