Matlab图像文件读取、保存、转换的实现

本文是从我以前的博客里转过来的。是原创文章。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 实现功能:matlab
% 1、批量读取图像文件:BMP/GIF/JPG;
% 2、调用系统命令:如创建文件夹 mkdir;
% 3、批量读取文件信息;
% 4、保存图像文件。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear; %清除变量
clc;    %清除屏幕

fileFolder=’E:\\work\\railway\\test\\2\\’; %设置文件夹路径
fileType=’*.bmp’;                           %设置文件变量
% filename=sprintf(‘img%3d’,12)

fprintf(['getting file list within folder :',fileFolder,'(file type:)',fileType,'...\n\n']);           %输出提示信息   
picstr=dir([fileFolder,fileType]);      %获取相应文件信息
[row,col]=size(picstr);                 %获取文件数量row

fprintf(['creating gray image folder:',fileFolder,'gray\\...\n']);           %输出提示信息   
system(['mkdir ',fileFolder,'gray\\']); %调用系统命令 mkdir,创建文件夹

for i=1:row
    fprintf(['\nreading ',picstr(i).name,'...\n']);             %输出载入信息
    video_rgb(:,:,:,i)=imread([fileFolder,picstr(i).name]);     %载入图像
    video_gray(:,:,i)=rgb2gray(video_rgb(:,:,:,i));             %彩色图转换成灰度图
    fprintf(['saveing ','g',picstr(i).name,'...\n']);                   %输出保存信息   
    imwrite(video_gray(:,:,i),[fileFolder,'gray\g',picstr(i).name],’BMP’); %保存图像
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

参考资料:

1.读入图片:imread(‘filename’)

如:f=imread(‘chest.jpg’);

注意:1.括号内为单引号,注意与C区分

2.命令行最后为冒号,否则会吃苦头的哦,呵呵

3.保证图片chest.jpg在当前目录下,否则要给出图片的完全路径

如:f=imread(‘D:\myimages\chest.jpg’);

4.filename后要跟图片格式后缀。

注:上述为推荐使用方式,即使用imshow(f),也可以,二者之间的区别可以从下面两幅图的显示上看出

imshow(f)imshow(f,[ ])

第一幅图片的灰度级较小,而,通过imshow(f,[ ])后它的灰度级范围得到拉伸。

imshow(f,[ ])是imshow(f,[ min high])的特例,即将f的实际最小对应到min,而其最大灰度级对应到max。

而对于f中小于等于min的灰度级显示为黑色,大于等于max的灰度级显示为白色。

3.写入图片:imwrite(f,’filename’)

其中对于JEPG格式的图片有

imwrite(f,’filename.jpg’,'quality’,q)               0<=q<=100

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]