Matlab图像处理函数
【编程注意事项】
1)将matlab的当前路径设置到存放图像文件的文件夹; 2)在新建的.m文件中进行编程; 3)程序开头写:clc; clear 4)语句后面记得加分号“;” ? 读取图像文件到数据数组I:
I=imread(‘FILENAME. FMT’) ;
其中,FILENAME为文件名,FMT为图像格式;例如I=imread(‘girl, bmp’),即从当前路径读图像文件girl.bmp的数据,并保存到矩阵I中。
如果图像文件为24位位图,则I为m×n×3的数组,其中I(: ,: ,1)表示红色分量的矩阵,其中I(: ,: ,2)表示绿色分量的矩阵,其中I(: ,: ,3)表示篮色分量的矩阵;
如果图像文件为灰度图像格式,则I为m×n的矩阵。
特别提示:读取图像的数据矩阵的数据类型为uint8(8位无符号整数),如果进行四则运算,须要先转换为double数据类型。完成运算后,再转换为uint8的图像数据类型。 ? 将彩色图像转换为灰度图像:
I= rgb2gray(I); 即:I从m×n×3的数组转换为m×n的矩阵。 获取图像数据的数组的大小: 对于灰度图像:
[m, n]=size(I); m为图像的总行数,n为图像的总列数 对于彩色图像:
[m, n, k]=size(I); m为图像的总行数,n为图像的总列数,k为描述彩色的分量的
个数,一般为3。
? 显示图像: (1)imshow(‘FILENAME.FMT’); 其中FILENAME为当前路径下的图像文
件名, FMT为图像格式。例如:imshow(‘girl.bmp’); 将当前路径下的图像文件girl.bmp进行显示。
(2)imshow(I); 将矩阵I对应的图像进行显示。
(3)在一个窗口中同时显示多个图像:例如,以下语句用于显示4幅图像,排成两行两列;另外,还采用了title函数,以便在图像上方添加标题:
subplot(2,2,1), imshow(I1), title(‘图像1’);
subplot(2,2,2), imshow(I2) , title(‘图像2’);
subplot(2,2,3), imshow(I3) , title(‘图像3’);
subplot(2,2,4), imshow(I4) , title(‘图像4’); ? 保存图像文件: imwrite(I, ‘FILENAME.FMT’);
其中I是图像数据矩阵,FILENAME是保存文件的名称,FMT是保存文件的格式。 例如:imwrite(I, ’girl.bmp’); 该命令用于将图像矩阵I保存到当前路径下,文件名为girl,格式为bmp文件。
? 逐个处理每一个象素: 采用双重循环语句,可以逐个处理每一个象素,例如对于m行
n列的图像I,使其变为黑色: for i=1: m for j=1: n I(i, j)=0; end end
《数字图像处理基础》实验报告
实验名称: 成绩:
学生姓名: 学号:
实验目的:
实验设备与软件:
实验内容:
实验步骤:
实验结果分析: