图像读入
从图形文件中读入图像 imread
Syntax: A = imread(filename, fmt)
filename:指定的灰度或彩色图像文件的完整路径和文件名。
fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。
A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。
对于索引图像,格式[X, map] = imread(filename, fmt)
X:图像数据矩阵。
MAP:颜色索引表
图像的显示
imshow函数:显示工作区 或图像文件中的图像
Syntax:
imshow(I) %I是要现实的灰度图像矩阵
imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数
imshow(RGB)
imshow(BW)
imshow(X,map) %map颜色索引表
imshow(filename)
himage = imshow(...)
操作:读取并显示图像
I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据
imshow(I);%显示原图像
图像增强
一.图像的全局描述
直方图(Histogram):是一种对数据分布情况的图形表示,是一种 \o "二维" 二维 \o "统计图表" 统计图表,它的两个坐标分别是 \o "统计样本(页面不存在)" 统计样本和该样本对应的某个属性的度量。
图像直方图(Image Histogram):是表示 \o "数字图像" 数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的 \o "像素" 像素数。
灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。
归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像素在图像中出现的概率。
图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。
图像的灰度直方图运算:?imhist()函数,其横坐标表示像素的灰度级别,纵坐标为像素点的个数。
Imhist函数=Display histogram of image data显示灰度直方图的函数
Syntax:
imhist(I) % I为要计算的灰度直方图图像
imhist(I, n) % n指定的灰度级的数目,表示所有灰度级均匀分布在n个小区间内。
imhist(X, map)
[counts,x] = imhist(...) %counts直方图数据向量。counts(i)第i个灰度区间中的像素数目。x是保存了对应的灰度小区间的向量。
注意:若调用时不接受这个函数的返回值,则直接显示直方图;在得这些返回数据之后,也可以使用stem(x,counts)手绘直方图。
例1:显示某一图像的灰度直方图
I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像
imhist(I) %显示图像的灰度直方图
例2:显示原图像和图像的灰度直方图
I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像
figure;
imshow(I); %显示原始图像
title('source');
figure;
imhist(I); %显示图像的灰度直方图
title('graph');
注意:这里显示的是未经归一化的灰度直方图,纵轴表示图像中所有像素取到某一特定灰度值的次数,横轴表示所有灰度值。
例3:归一化直方图
I=imread('C:\Users\fanjinfei\Desktop\baby.bmp'); %读入原图像
figure; %打开新窗口
[M,N]=size(I); %计算图像大小
[counts,x] = imhist(I,32) ; %计算有32个小区间的灰度直方图
counts=counts/M/N; %计算归一化灰度直方图各区间的值
stem(x,counts) %绘制归一化直方图
注意:counts保存了落入每个区间的像素个数.
图像归一化:就是将图像转换成唯一的标准形式,消除同类图像不同变形体之间的外