基于Matlab基本图像处理程序

  • 格式:doc
  • 大小:237.79 KB
  • 文档页数:11

下载文档原格式

  / 11
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;