当前位置:
文档之家› 数字图像处理及应用(MATLAB)第8章
数字图像处理及应用(MATLAB)第8章
(2)imhist 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) ;imhist(X,map) 说明:其中,n 为指定的灰度级数目,缺省值为256; imhist(X,map) 就算和显示索引色图像 X 的直方图,map 为调色 板。
(3)histeq 功能:实现直方图均衡化 格式: J=histeq(I,n) ;J=histeq(I,hgram) ; [J,T]=histeq(I,...) 说明:J=histeq(I,n) 指定均衡化后的灰度级数n,缺省值64; J=histeq(I,hgram)是 实现直方图的规定化,即将 原图象 I 的直方图变换成用户指定的向量 hgram ,hgram 中的每 一个元素都在 [0,1] 中; [J,T]=histeq(I,...) 返回从能将图像 I 的灰度直方图 变换成图像J的直方图的变换T。
2、实验中所用部分函数介绍
(1)imread 功能:图像文件的读取 格式: A=imread(filename,fmt) 将文件命为filename表示的扩展名为fmt的图像文件读取到矩 阵A中。MATLAB支持的图像格式有bmp、jpg或jpeg、tif或tiff、 gif、pcx、png、xwd。 (2)imwrite 功能:图像文件的写入(保存),把图像写入图形文件中 格式:imwrite(A,filename,fmt) ;A,filename,fmt意义同上 所述。
figure,imshow('newclown.bmp') title('newclown.bmp') whos i1 i2
实验结果如图8.1.1所示及以下数据: Name Size Bytes Class i1 280x272 76160 logical array i2 291x240 69840 uint8 array
(a) rice
(b) cameraman
(c)相加后的图像
4、实验内容程序设计部分 (1)对灰度图像、真彩色图像实现读取、显示和保存。 (2)matlab图像文件夹中的mri.tif是一个包含27帧、图像尺寸为 128*128的多帧索引图像,请将前20帧图像顺序读入到一个数组中 并显示出来。 (3)通过图像点运算减弱图像对比度。 (4)分别将索引色图像转换为灰度图像和二值图像,并将灰度图 像转换为索引色图像 (5)求对任意两幅大小不相等的图像相加的结果,并加以验证用 语句:K2=Ibackground+J;代替示例程序中 K2=imadd(Ibackground,J,'uint16');的处理结果是否相同。
说明:J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)中,将图像I中的亮度值映射到J中的新值,即 将low_in至hige_in之间的值映射到low_out至high_out之间的值。 它们都可以使用空的矩阵[],默认值是[0 1]。
(3)imshow 功能:显示图像 格式:imshow(I,n) ;imshow(I,[low high]) ;imshow(BW) %显示黑白图像 imshow(X,map) %显示索引色图像;imshow(RGB) %显示真彩色图像 imshow filename (4)figure 功能:创建图形窗口 (5)subplot 功能:将多个图画到一个平面上的工具。 格式:subplot(m,n,p)或者subplot(mnp) 说明:其中,m表示是图排成m行,n表示图排成n列,也就 是整个figure中有n个图是排成一行的,一共m行。
(6)imnoise 功能:给图像增加噪声 格式:J=imnoise(I,type) ; J=imnoise(I,type,parameter) 说明:J=imnoise(I,type) 返回对图像 I 添加典型噪声后的有 噪图像 J ,参数 type 和 parameter 用于确定噪声的类型和相应的 参数。 (7)medfilt2 功能:二维中值滤波 格式:B = medfilt2(A) 用3×3的滤波窗口对图 像A进行中值滤波。 B = medfilt2(A,[m n]) 用指定大小为m×n的窗 口对图像A进行中值滤波。 说明:B = medfilt2(A)表示用3×3的滤波窗口对图像A进行 中值滤波。 B = medfilt2(A,[m n])表示 用指定大小为m×n的窗口 对图像A进行中值滤波。
(a)原始图像 实验结果图
(b) 处理后图像
(4)实现真彩色图像与索引图像的互相转换。
clear,clc close all RGB1 = imread('peppers.png');%读入真彩色图像 [X1,map1] = rgb2ind(RGB1,128);%真彩色图像转化为索引图 imshow(X1,map1) %显示索引图像 load clown;%载入图像 rgb2=ind2rgb(X,map);%将索引图像转化为真彩色图像 figure,imshow(rgb2)
第八章 数字图像处理实验
8.1 数字图像处理基本操作 8.2 图像增强技术实验 8.3 图像变换实验
8.4 图像分割实验
8.5 图像压缩编码实验
8.6 图像特征提取实验
8.1 数字图像处理基本操作
1、实验目的 (1)掌握MATLAB软件的运用,熟练掌握建立、保存、运行、调 试m文件的方法。 (2)了解MATLAB软件中图像处理工具箱的使用方法。 (3) 熟练掌握图像文件(黑白、灰度、索引色和彩色图像)的读 取及显示方法。 (4)熟悉常用的图像文件格式和格式转换。
8.2 图像增强技术实验
1、实验目的 (1)了解图像增强的目的和意义。 (2)掌握MATLAB中常用的图像增强函数的使用方法。 (3)掌握图像灰度变换、图像平滑和图像锐化的算法原理。
2、实验中所用部分函数介绍 (1)imadjust 功能:调节灰度图像的亮度或彩色图像的颜色矩阵。 格式:J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma) newmap = imadjust(map,[low_in high_in],[low_out high_out],gamma) RGB2 = imadjust(RGB1,[low_in high_in],[low_out high_out],gamma)
(a) 真彩色图像(d)第三个颜色分量
(3)通过图像点运算增强图像对比度 clear,clc close all I=imread('rice.png'); subplot(1,2,1),imshow(I); I1=double(I); J=I1*1.4+40;%点运算增强 I2=uint8(J); subplot(1,2,2),imshow(I2); 实验结果如图所示:
newmap = imadjust(map,[low_in high_in],[low_out high_out],gamma)为调整索引色图像的调色板map。
RGB2 = imadjust(RGB1,[low_in high_in],[low_out high_out],gamma)为对RGB图像1的红、绿、蓝调色板分别进行 调整。随着颜色矩阵的调整,每一个调色板都有唯一的映射值。 参数gamma指定了曲线的形状,该曲线用来映射I的亮度 值。如果gamma小于1,映射被加权到更高的输出值。如果 gamma大于1,映射被加权到更低的输出值。如果省略了函数的参 量,则gamma默认为1(线性映射)。
(4)filter2 功能:基于卷积的图象滤波函数 格式:Y = filter2(h,X) 说明:Y = filter2(h,X)返回图像X经滤波算子h滤波后的结果, 默认返回图像Y与输入图像X大小相同。 (5) fspecial 功能:产生预定义滤波器 格式:H=fspecial(type) H=fspecial('gaussian',n,sigma) 高斯低通滤波器 H=fspecial('sobel') Sobel水平边缘增强滤波器 H=fspecial('prewitt') Prewitt水平边缘增强滤波 器 H=fspecial('laplacian',alpha) 近似二维拉普拉斯运算滤 波器 H=fspecial('log',n,sigma) 高斯拉普拉斯(LoG)运 算滤波器 H=fspecial('average',n) 均值滤波器 H=fspecial('unsharp',alpha) 模糊对比增强滤波器
(a) circbw.tif
(b) newcircbw.bmp
(c) clown.bmp
(d) new clown.bmp
(2) 在一个图形窗口中显示RGB图像 clear,clc close all I=imread('peppers.png'); subplot(2,2,1),imshow(I,'notruesize'),title('真彩色图像') R=I;R(:,:,[2 3])=0;%红色分量 G=I;G(:,:,[1 3])=0;%绿色分量 B=I;B(:,:,[1 2])=0;%蓝色分量 subplot(2,2,2),imshow(R,'notruesize');title('显示第一个颜色分量') subplot(2,2,3),imshow(G,'notruesize');title('显示第二个颜色分量') subplot(2,2,4),imshow(B,'notruesize');title('显示第三个颜色分量') 实验结果图如图所示。
(6)rgb2ind 功能:将真彩色图像转换成索引色图像 格式:[X,map]= = rgb2ind ( I,n) 说明:I表示被转换的RGB原图像,其中n指定map中颜色项数, n 最大不能超过65536。 (7)ind2rgb 功能:将索引色图像转换成真彩色图像, 格式:RGB=ind2rgb(X,map) 说明:X表示被转换的索引色图像,map是X的调色板。 MATLAB的实际处理方式是创建一个三维数组,然后将索引色图像 中与颜色对应的map值赋值给三维数组。 (8) im2bw 功能:通过设置阈值将RGB、索引色、灰度图像转换成二值图像 格式:BW=im2bw(I, level) 说明:参数I可以是真彩色图像、灰度图像和索引色图像,当是索 引色图像时,I表示成X,map;level为转换阈值,转换阈值根据图 像而不同,可以通过函数graythresh()求得。