Matlab读取图片代码.docx
文本预览下载声明
1.读取某盘的图片
比如你要读取E盘里的png 格式的图片
p1=dir(E:\*.p*);%自动读取文件夹里的png 所有图片 *.p*是寻找E盘下后缀第一个字为p的 你当然可以改 如果你的是jpg就改为p1=dir(E:\*.j*);。
[r1 c1]=size(p1);
for i=1:r1
ImgN=p1(i).name;%图片的名字
ImgN=strcat(E:\,ImgN);%读取图片
Img=(imread(ImgN));
if size(Img,3) == 3 %如果维数为三 则RGB图像转化为灰度图像
Img = rgb2gray(Img);
else
Img = Img;
end
%%加上处理的代码
end
2.GUI在坐标系中读取图片
%按键下写如下代码
%打开文件对话框
[filename,pathname]=uigetfile({ ...
*.*,All Files(*.*);},...
选择文件);
%
if isequal([filename,pathname],[0,0])
return
else
%读取图片
pic = fullfile(pathname,filename);
b = imread(pic);
imshow(b);
end
我在一个E盘根目录test文件夹中有1200幅图像,图像名依次是1,2,3,……1200,格式为bmp格式,E盘根目录下有幅背景图像I,格式也是bmp。第一步:读取test中所有的图像然后转化成double型。第二步:读取背景图像I,再转换成double型。第三步:将1200幅double型的图像分别点除double型的图像I得到1200幅无背景图像。第四步:我1200幅无背景图像进行剪切处理,剪切范围是[81 0 1043 1300],得到新的1200幅图像。第五步,将剪切后的1200幅图像保存到F盘下的test文件夹中,命名依次为1,2,3,……1200,格式为bmp。小弟不懂得地方就是如何批量读取,如何用for循环实现double型转换、除法和剪切。由于小弟刚学习matlab,还请诸位高人指点。万分感谢。
Blackground=imread(E:\XXX.bmp);
Blackground=double(Blackground);
for i=1:1200
Na=[F:\test\,num2str(i),.bmp];
A=imread(Na);
A=double(A);
A=A./Blackground;
imwrite(A,Na);
end
显示全部