matlab多幅图像读取

1.matlab2006上用摄像头连续采集、保存图像源程序。运行imaq_test.m文件后,弹出保存对话框,指定一个存盘目录,选定保存格式(如.jpg),输入主文件名(如aqim),点击'开始采集'按钮,将以设定的频率采集图像,并以aqim1.jpg,aqim2.jpg...保存在选定的文件夹中。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%保存为 imaq_test.m
hfig=figure;
hpush1=uicontrol(gcf,'style','push','unit','normalized',...
'string','开始采集',...
'position',[0.1 0.1 0.1 0.05],'callback','imaq_cyc');
haxis1=axes('unit','normalized',...
'position',[0.3 0.3 0.5 0.5]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%保存为 imaq_cyc.m
%读取任一文件,识别其文件名、后缀名、所在路径
[filename, pathname, filterindex] = uiputfile( ...
{'*.jpg;*.bmp;*.tif;*.png', 'All PHOTO Files (*.jpg;*.bmp;*.tif;*.png)';
'*.jpg','jpg-files (*.jpg)'; ...
'*.bmp','bmp-files (*.bmp)'; ...
'*.tif','tif-files (*.tif)'; ...
'*.png','png-files (*.png)'; ...
'*.*', 'All Files (*.*)'}, ...
'Save as');
if isequal(filename,0) || isequal(pathname,0)
h=msgbox('你按下了取消键!','Title','custom',hot(64));
else
%确定存盘时的主文件名、后缀名
filelen=length(filename);
for k=1:filelen;
if filename(k)=='.';
dotnum=k;
end;
k=k+1;
end;
insuffix= filename(dotnum:end);
infname=filename(1:dotnum-1);
%确定存盘时的主文件名、后缀名
end
%%%%%%%%%%%%%%循环采集、保存图像
vid=videoinput('winvideo');
imaqnum=10; %采集帧数
for k=1:imaqnum;
start(vid);
aqdata1=getdata(vid,1);
%先保存、再显示
fullpath=[pathname,infname,num2str(k),insuffix]; %保存路径
imwrite(aqdata1,fullpath); %不知道此处为何不能带上'Quality'参数
imshow(aqdata1);
pause(2); %采集频率2s/次
k=k+1;
end
%%%%%%%%%%%%%%循环采集、保存图像
2.
可以根据多幅图像的名字把相同的部分作为文件名固定的字符串 把不同的部分(一般是
序号不同)作为可变量依次递增,再一起组合为每一次读取的最终文件名;
然后通过fopen函数去查看,有无文件,如果有,就存入一个变量中;如果没有就退出while
循环。
例如:
file = 'C:\MATLAB\image';
slice = 1;
filename = strcat(file,int2str(slice),'.bmp');
Judge = true;
fid=fopen(filename,'r');
if fid==-1
Judge = false;
else
storeImage = imread(filename);
end
fclose(fid);
while(Judge)
slice = slice+1;
filename=strcat(file,int2str(slice),'.bmp');
fid=fopen(filename,'r');
if fid==-1
Judge = false;
else
tempImage = imread(filename);
storeImage = cat(3,storeImage,tempImage);
end
fclose(fid);
end
这样 ,在storeImage就存入了所有图片
这种方法理论上可以,本人试过几次,却没有执行出来,望专业人士指正。
Tags: 

延伸阅读

最新评论

发表评论