基于Matlab基本图像处理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像读入
从图形文件中读入图像imread
Syntax: A = imread(filename, fmt)
filename:指定的灰度或彩色图像文件的完整路径和文件名。
fmt: 指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件 ,会尝试查找一个名为filename.fmt的文件。
A :包含图像矩阵的矩阵。对于灰度图像,它是一个M 行 N 列的矩阵。如果文件包含RG
B 真彩图像 ,则是 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):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。
图像直方图( Image Histogram):是表示数字图像中亮度分布的直方图,
用来描述图象灰度值,标绘了图像中每个亮度值的像素数。
灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图
像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概
率。
归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像
素在图像中出现的概率。
图像的灰度直方图:是一个离散函数,表示图像每一灰度级与该灰度级出现概率的对应关系。
图像的灰度直方图运算:imhist() 函数,其横坐标表示像素的灰度级别,纵坐标为
像素点的个数。
Imhist函数 =Display histogram of image data显示灰度直方图的函数
Syntax:
①imhist(I)
②imhist(I, n)% I 为要计算的灰度直方图图像
% 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 保存了落入每个区间的像素个数.
图像归一化:就是将图像转换成唯一的标准形式,消除同类图像不同变形体之间的外观差异。二.直方图均衡化
目的:通过某种灰度映射,使输入图像转换为在每个灰度级上都具有近似相同的像素点数的
输出图像。(输出的直方图均匀)
结果:使图像具有较高的对比度和较大的动态范围。
Histeq 函数: Enhance contrast using histogram equalization直方图均衡化
Syntax:[J, T] = histeq(I)%I 是原始图像; J 是直方均衡化的输出图像,
T 是变换矩阵例:利用直方图均衡化来实现图像的灰度归一化。Matlab 的实现:
I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读入图像
I=im2double(I);
%对比度变大的图像
I1=2*I-55/255;