实验三 图像增强--灰度变换
- 格式:pdf
- 大小:434.01 KB
- 文档页数:7
成绩评定表课程设计任务书摘要空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
图像变换增强是利用一系列的变换方法使图像的对比度得到提升,以达到增强图像的目的,便于观察,易于区分不同灰度的图像。
灰度变换的方法有线性灰度变换、分段线性灰度变换、非线性灰度变换。
本文采用灰度变换技术,分别对灰度图像进行了线性灰度变换增强、非线性灰度增强和分段线性灰度增强。
仿真结果表明灰度变换可使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显;对于灰度局限在某一个很小范围内的数字图像,采用线性函数对图像的每一个像素进行线性扩展,扩大像素的对比度,将有效地改善视觉效果,达到了提高图像对比度,增强图像效果的目的,证明了图像变换增强在数字图像处理中的重要作用。
关键词:空域增强;灰度变换;线性灰度变换;非线性灰度变换目录1 设计目的与要求 (1)1.1 设计目的 (1)1.2 设计要求 (1)2 设计原理 (1)2.1 线性灰度变换 (1)2.2 分段线性灰度变换 (2)2.3 非线性灰度变换 (3)3 设计方案 (3)3.1 设计思想 (3)3.2 设计流程 (4)4 软件实现 (5)4.1 线性灰度变换增强 (5)4.2 分段线性灰度变换增强设 (6)4.3 非线性灰度变换增强 (7)5 仿真与结果分析 (7)5.1 仿真 (8)5.2 结果分析 (10)结论 (11)参考文献 (12)1 设计目的与要求1.1 设计目的空域增强在数字图像处理中起到对图像灰度的拉伸、压缩变换的作用,目前这种方法在处理图像灰度值方面得到广泛的运用。
灰度变换是空域变换的一种重要方式,可使图像对比度扩展,图像清晰,特征明显。
本实验中,我们就用灰度变换来对灰度图像进行处理。
1.2 设计要求(1)熟练掌握MATLAB软件的基本操作(2)学会掌握MATLAB软件的程序编程(3)查阅相关资料并分析,掌握灰度变换增强的主要思路(4)培养独立分析和解决问题的能力,学会撰写课程设计的总结报告(5)善于总结和改进方案,提高可实施性和高效性。
实验三图像增强--灰度变换实验三图像增强—灰度变换⼀、实验⽬的:1、了解图像增强的⽬的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直⽅图的分析。
3、掌握直接灰度变换的图像增强⽅法。
⼆、实验原理及知识点术语‘空间域’指的是图像平⾯本⾝,在空间域内处理图像的⽅法是直接对图像的像素进⾏处理。
空间域处理⽅法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进⾏操作其表达式为:g(x,y)=T[f(x,y)]其中f(x,y)为输⼊图像,g(x,y)为输出图像,T是对图像f进⾏处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要⽅法是,使⽤中⼼位于(x,y)的正⽅形或长⽅形区域。
此区域的中⼼从原点(如左上⾓)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应⽤于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使⽤该领域的像素。
灰度变换T的最简单形式是使⽤领域⼤⼩为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为⼀个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,⽽与(x,y)⽆关,所以亮度函数通常可写做如下所⽰的简单形式: s=T(r)其中,r表⽰图像f中相应点(x,y)的亮度,s表⽰图像g中相应点(x,y)的亮度。
核⼼函数是imhist,其基本语法为:h=imhist(f,b)其中,f为输⼊图像,h为其直⽅图h(),b是⽤于形成直⽅图像的灰度级的个数。
如果b未包含在此变量中,则默认值为256.如要处理⼀幅uint8类图像并令b=2,则亮度标度范围分为两部分:0—127和128—255.所得的直⽅图只有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[127,255]内的像素总数。
使⽤ p=imhist(f,b)/numel(f)则可获得归⼀化直⽅图。
实验三空域图像增强(灰度变换、直方图处理)一、实验目的1. 掌握灰度变换的基本原理。
2. 掌握直方图处理的基本原理。
3. 掌握Matlab中灰度变换和直方图处理的实现方法。
二、实验内容1. 灰度变换(直接正比变换)。
2. 灰度变换(截取式正比变换)。
3. 灰度变换(反比变换)。
4. 灰度变换(对比拉伸)。
5. 灰度变换(灰度切割)。
6. 灰度变换(对数变换)。
7. 灰度变换(幂次变换)。
8. 直方图处理(直方图均衡化)。
三、实验仪器、设备及材料1. 电脑一台(2G CPU、2GB RAM、50GB Disk及以上)。
2. Windows 2000 / Windows XP / Windows 7。
3. Matlab R2006b及以上版本。
4. 记录用的笔、纸。
四、实验原理1. 灰度变换灰度变换是一种点操作,根据原始图像中每个像素的灰度值,按照某种映射规则将其转化为另一灰度值。
其原理是将原图像f(x , y)中的每个像素的灰度按EH操作直接变换以得到目标图像g(x , y)。
若以s表示f(x , y),以t表示g(x , y),则灰度变换原理如下图所示:2. 直方图处理直方图变换可以清晰图像细节,突出目标物体,改善亮度比例关系,增强图像对比度。
直方图变换基于概率论。
直方图均衡化主要用于增强动态范围偏小的图像的反差。
其基本思想是把原图像的直方图转换为均匀分布的形式,增加像素灰度值的动态范围,增强图像整体对比度。
五、实验步骤1. 灰度变换(直接正比变换)(1) 程序源代码:close allclear15clcdisp('====E4_4_1.m====');I=imread('rice.png');subplot(3,3,1),imshow(I),ylabel('原图像');subplot(3,3,2),imhist(I);%方法1-系统函数J=imadjust(I,[40/255 204/255],[0 1]); %图像的最小灰度值为40,最大灰度值为204subplot(3,3,4),imshow(J),ylabel('变换图像(方法1)');subplot(3,3,5),imhist(J);%方法2-编程实现%把灰度值范围从[40,204]映射到[0,255]f0=0;g0=0; %分段曲线的第1个点f1=40;g1=0; %分段曲线的第2个点f2=204;g2=255; %分段曲线的第3个点f3=255;g3=255; %分段曲线的第4个点subplot(3,3,9),plot([f0,f1,f2,f3],[g0,g1,g2,g3]),xlabel('f'),ylabel('g'),axis([0 255 0 255]);%绘制变换曲线r1=(g1-g0)/(f1-f0); %曲线1的斜率b1=g0-r1*f0; %曲线1的截距r2=(g2-g1)/(f2-f1); %曲线2的斜率b2=g1-r2*f1; %曲线2的截距r3=(g3-g2)/(f3-f2); %曲线3的斜率b3=g2-r3*f2; %曲线3的截距[m,n]=size(I);K=double(I);for i=1:mfor j=1:nf=K(i,j);g(i,j)=0;if(f>=f0)&(f<=f1)g(i,j)=r1*f+b1; %曲线1的方程y=r1*x+b1elseif (f>=f1)&(f<=f2)g(i,j)=r2*f+b2; %曲线2的方程y=r2*x+b2elseif (f>=f2)&(f<=f3)g(i,j)=r3*f+b3; %曲线3的方程y=r3*x+b3endendendendend16subplot(3,3,7),imshow(uint8(g)),ylabel('变换图像(方法2)');subplot(3,3,8),imhist(uint8(g));(2) 观察并记录实验结果:作为实验报告的内容(3) 将“分段曲线的第2个点”更改为“f1=150;g1=0;”,观察并记录实验结果,分析产生该结果的原因:作为实验报告的内容。
计算机与信息工程学院验证性实验报告专业:通信工程年级/班级:2011级 2013—2014学年第一学期课程名称数字图像处理指导教师段新涛本组成员学号姓名实验地点计科楼111实验时间周五5-6节项目名称图像增强—灰度变换实验类型验证性一、实验目的:1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点术语‘空间域’指的是图像平面本身,在空间与内处理图像的方法是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作其表达式为g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
三、实验内容:1、图像数据读出2、计算并分析图像直方图3、利用直接灰度变换法对图像进行灰度变换下面给出灰度变化的MATLAB程序f=imread('medicine_pic.jpg');g=imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1]g2=imadjust(f,[0.5 0.75],[0 1]);figure,imshow(g2)g=imread('point.jpg');h=log(1+double(g)); %对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figure,imshow(h)四、实验仪器PC一台,MATLAB软件五、实验图片columbia480.bmp Fig0704(Vase).tif.tif六、实验程序及结果clc;clear allf=imread('columbia480.bmp');subplot 121;imshow(f)title('原始图像')subplot 122;imhist(f,256)title('原始图像直方图')%灰度转换,实现明暗转换(负片图像)f1=imadjust(f,[0 1],[1 0]);figure(2)subplot 121,imshow(f1)title('明暗转换后的图像')subplot 122;imhist(f1,256)title('明暗转换直方图')%将0.5到0.75的灰度级扩展到范围[0 1]f2=imadjust(f,[0.5 0.75],[0 1]);figure(3)subplot 121;imshow(f2)title('0.5到0.75的灰度级扩展到范围[0 1]的图像')subplot 122;imhist(f2,256)title('灰度级扩展直方图')像像像像050010001500200025003000像像像像像像像像像像像像像像像像像像像像像像0.5像0.75像像像像像像像像像[0 1]像像像0x 104像像像像像像像像clc;clear allm=imread('Fig0704(Vase).tif.tif');h=log(1+double(m)); %对输入图像对数映射变换h=mat2gray(h); %将矩阵h 转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图figuresubplot 221;imshow(m)title('原始图像')subplot 222;imhist(m)title('原始图像直方图')subplot 223;imshow(h)title('经log 变换后的图像')subplot 224;imhist(h)title('经log 变换后的图像直方图')像像像像像像像像像像像像log 像像像像像像0像log 像像像像像像像像像教师签名:年 月 日。
实验三直方图及灰度变换一,目的熟悉并学会使用MA TLAB中图像增强的相关函数了解图像增强的方法、去噪的方法和效果二,实验条件1)微型计算机:INTEL 奔腾及更高2)MATLAB3)典型的灰度、彩色图像文件三,原理视一幅图像为二维矩阵,用MA TLAB进行图像增强直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
四,实验内容1.线性变换设计:从灰度区间[a,b]到[a1,b2]cd d:I=imread('test.jpg');J=rgb2gray(I);%imshow(J);figure,subplot(2,2,1)imhist(J);[m n]=size(J);max_=0;min_=255;%for嵌套循环获取最小灰度及最大灰度值,也可两次调用min或max函数for x=1:1:mfor y=1:1:nif J(x,y) < min_min_=J(x,y);endif J(x,y) > max_max_=J(x,y);endendendmin_max_%循环进行函数计算,从而实现变换%原始图像的像素灰度范围【0,255】,变换后的图像像素灰度范围【min_,max_】for x=1:1:mfor y=1:1:nNEW(x,y)=min_+(max_-min_)/255*(J(x,y));endend%imshow(NEW);figure,subplot(2,2,2) imhist(NEW);010020002000400060008000图像变换前 0100200200040006000图像变换后2.直方图,用matlab语言自写一个程序设计并绘出图像直方图cd d:I=imread('test.jpg');J=rgb2gray(I);%imshow(J);figure,subplot(2,2,1)H=zeros(1,256);%zeros(m,n)产生m×n的零矩阵[m n]=size(J);for i=1:mfor j=1:nH(J(i,j)+1)=H(J(i,j)+1)+1;%从第一个开始,并统计灰度值endendplot(H);stem(H); %绘制二维离散数据的火柴杆图3.直方图的均衡化%一,图像的预处理,读入彩色图像将其灰度化cd d:I=imread('test.jpg');H=rgb2gray(I);imshow(H);%二,绘制直方图[m,n]=size(H); %测量图像尺寸参数GL=zeros(1,256); %预创建存放灰度出现概率的向量for k=0:255GL(k+1)=length(find(H==k))/(m*n);%计算每级灰度出现的概率,将其存入GP中相应位置endfigure,bar(0:255,GL,'g') %绘制直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')%三,直方图均衡化S1=zeros(1,256); % zeros(m,n)产生m×n的零矩阵for i=1:256for j=1:iS1(i)=GL(j)+S1(i); %计算变换函数SkendendS2=round((S1*256)+0.5); %将Sk归到相近级的灰度for i=1:256GLPeq(i)=sum(GL(find(S2==i))); %计算现有每个灰度级出现的概率endfigure,bar(0:255,GLPeq,'b') %显示均衡化后的直方图title('均衡化后的直方图')xlabel('灰度值')ylabel('出现概率')%四,图像归一化PA=PS;for i=0:255PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素endfigure,imshow(PA) %显示均衡化后的图像title('均衡化后图像')imwrite(PA,'JUNHENGHUA.bmp');均衡化前的图像-5005010015020025030000.0050.010.0150.020.025原图像直方图灰度值出现概率-5005010015020025030000.0050.010.0150.020.025均衡化后的直方图灰度值出现概率均衡化后图像均衡化后的图像参考:姚静,武文波,康停军. 直方图均衡化的Matlab 实现[J]. 辽宁工程技术大学学报,2007,S2:60-62.仅供参考。
深圳大学实验报告课程名称: 数字图像处理实验项目名称: 图像增强学院: 信息工程学院专业: 通信工程****: ***报告人: 学号: 班级: 1班实验时间: 2015、04、09实验报告提交时间: 2015、05、21教务处制[1] 简述直方图均衡化原理答:直方图均衡化的基本思想就是对原始图像中的像素灰度做某种映射变换,使变换后的图像灰度的概率密度就是均匀分布的,即变换后图像就是一幅灰度均匀分布的图像,这意味着图像灰度的动态范围得到了增加,从而可提高图像的对比度。
[2] 对给定的两幅灰度数字图像(可以用MATLAB自带的图像文件)进行如下处理:a、对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。
答:代码实现如下:A = imread('1、jpg');I=rgb2gray(A);[height,width] = size(I);figuresubplot(221)imshow(I)%显示原始图像subplot(222)imhist(I)%显示原始图像直方图%进行像素灰度统计;s = zeros(1,256);%统计各灰度数目,共256个灰度级for i = 1:heightfor j = 1: widths(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一 endend%计算灰度分布密度p = zeros(1,256);for i = 1:256p(i) = s(i) / (height * width * 1、0);end%计算累计直方图分布c = zeros(1,256);c(1) = p(1);for i = 2:256c(i) = c(i - 1) + p(i);end%累计分布取整,将其数值归一化为1~256c = uint8(255 、* c + 0、5);%对图像进行均衡化for i = 1:heightfor j = 1: widthI(i,j) = c(I(i,j)+1);endendsubplot(223)imshow(I)%显示均衡化后的图像subplot(224)imhist(I)%显显示均衡化后的图像的直方图进行灰度均衡化的公式有很多,只要满足两个关键的条件就行了。
线性灰度变换一、实验目的1结合实例学习如何在视频显示程序中增加图像处理算法;2理解和掌握图像的线性变换和直方图均衡化的原理和应用;3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;4 了解噪声模型及对图像添加噪声的基本方法。
二、实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f a y x f y x f y x g b a γβαn y m x ,2,1 ,,,2,1==2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。
按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k nn r p k k r 通过转换公式获得:1,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。
将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。
三、实验步骤1 启动MATLAB 程序,对图像文件分别进行灰度线性变换(参考教材57页,例4.1)、直方图均衡化(参考教材64页,例4.6)、均值滤波(参考教材69页,例4.9)、中值滤波(参考教材73页,例4.11)和梯度锐化操作(参考教材76页,例4.12)。
添加噪声,重复上述过程观察处理结果。
遥感图像增强实验报告引言遥感技术在地球科学和环境科学领域有着广泛的应用,其中图像增强是遥感图像处理的重要环节之一。
图像增强旨在改善遥感图像的视觉效果,使得图像的细节更加清晰、对比度更加鲜明,以便更好地进行地表特征的识别和分析。
在本次实验中,我们将探讨常用的图像增强方法,并且使用实际遥感图像进行增强实验。
实验目的1. 了解遥感图像增强的基本概念和方法。
2. 掌握常见的图像增强方法的实施过程。
3. 分析和比较不同图像增强方法的效果,选择最适合的增强方法。
实验步骤1. 数据准备:选择一张遥感图像作为实验数据,确保图像分辨率适中、含有一定的地表特征。
2. 灰度拉伸:使用灰度拉伸方法增强图像的对比度。
首先计算图像的最小灰度值(Min)和最大灰度值(Max),然后通过线性变换将灰度值映射到0-255的范围内。
3. 直方图均衡化:利用直方图均衡化方法增强图像的细节。
首先计算图像的灰度直方图,然后按照直方图均衡化的公式对每个灰度值进行调整。
4. 自适应直方图均衡化:对比直方图均衡化方法,自适应直方图均衡化能够避免对整个图像进行均衡化,而是通过使用局部领域内的信息来进行均衡化。
5. 对比度增强:使用对比度增强方法增强图像的对比度。
可以通过调整图像的亮度、对比度和饱和度来实现。
6. 结果分析:根据实验结果分析不同图像增强方法的效果,选择最佳的增强方法。
实验结果与分析经过实验,我们得到了经过不同图像增强方法处理后的图像。
通过对比实验前后的图像,我们可以得出以下结论:1. 灰度拉伸方法能够有效增强图像的对比度,使得图像的亮度范围更广,细节更加清晰。
2. 直方图均衡化方法能够增强图像的细节,特别是在暗部和亮部细节的表现上有显著提升。
3. 自适应直方图均衡化方法相比于普通直方图均衡化方法在处理具有大范围对比度差异的遥感图像时效果更好,避免了过度增强和信息损失。
4. 对比度增强方法可以通过调整图像的亮度、对比度和饱和度来增强图像的视觉效果,但对于某些场景可能会导致图像过度增强或过度饱和。
数字图像处理实验1. 直方图修正灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像增强。
(1)计算出一幅灰度图像的直方图clearclose allI=imread(' rice.png');imhist(I)title('实验一(1)直方图');(2)对灰度图像进行简单的灰度线形变换,figuresubplot(2,2,1)imshow(I);title('试验2-灰度线性变换');subplot(2,2,2)histeq(I);(3)看其直方图的对应变化和图像对比度的变化原图像f(m,n) 的灰度范围[a,b] 线形变换为图像g(m,n),灰度范围[a’,b’] 公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)figuresubplot(2,2,1)imshow(I)J=imadjust(I,[0.3,0.7],[0,1],1);title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n)/(b-a)进行变换');subplot(2,2,2)imshow(J)subplot(2,2,3)imshow(I)J=imadjust(I,[0.5 0.8],[0,1],1);subplot(2,2,4)imshow(J)(4) 图像二值化(选取一个域值,将图像变为黑白图像)figuresubplot(2,2,1)imshow(I)J=find(I<150);I(J)=0;J=find(I>=150);I(J)=255;title(' 实验一(4)图像二值化( 域值为150 )');subplot(2,2,2)imshow(I)clc;I=imread(‘rice.png');bw=im2bw(I,0.5);%选取阈值为0.5figure;imshow(bw) %显示二值图像2. 图像处理变换1.傅立叶变换熟悉其概念和原理,实现对一幅灰度图像的快速傅立叶变换,并求其变换后的系数分布. 2.离散余弦变换熟悉其概念和原理,实现对一幅灰度和彩色图像作的离散余弦变换,选择适当的DCT系数阈值对其进行DCT反变换.% 图像的FFT变换clc;I=imread('rice.png');subplot(1,2,1)imshow(I);title('原图');subplot(1,2,2)imhist(I);title('直方图');colorbar;J=fft2(I);figure;subplot(1,2,1)imshow(J);title('FFT变换结果');subplot(1,2,2)K=fftshift(J);imshow(K);title('零点平移');figure;imshow(log(abs(K)),[]),colormap(jet(64)),colorbar;title('系数分布图');% 图像的DCT变换RGB=imread('onion.png');figure;subplot(1,2,1)imshow(RGB);title('彩色原图');a=rgb2gray(RGB);subplot(1,2,2)imshow(a);title('灰度图');figure;b=dct2(a);imshow(log(abs(b)),[]),colormap(jet(64)),colorbar; title('DCT变换结果');figure;b(abs(b)<10)=0;% idctc=idct2(b)/255;imshow(c);title('IDCT变换结果');3. 小波变换实验内容:熟悉小波变换的概念和原理,熟悉matlab小波工具箱主要函数的使用.利用二维小波分析对一幅图像作2层小波分解,并在此基础上提取各层的低频信息实现图像的压缩.程序如下:clcclose allcleara=imread('deblur1.png ');subplot(1,2,1);imshow(a);title('原始图像');I=rgb2gray(a);subplot(1,2,2);imshow(I);title('原始图像的灰度图');% 进行二维小波变换[a,b] = wavedec2(I, 2, 'bior3.7');% 提取各层低频信息figure;c = appcoef2( a, b, 'bior3.7', 1 );subplot(1,2,1);imshow(c, []);title('一层小波变换结果');d = appcoef2( a, b, 'bior3.7', 2 );subplot(1,2,2);imshow(d, []);title('二层小波变换结果');4. 模板运算一、实验内容:(1)平滑:平滑的目的是模糊和消除噪声。
实验三图像增强—灰度变换
一、实验目的:
1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。
2、学会对图像直方图的分析。
3、掌握直接灰度变换的图像增强方法。
二、实验原理及知识点
术语‘空间域’指的是图像平面本身,在空间域内处理图像的方法是直接对图像的像素进行处理。
空间域处理方法分为两种:灰度级变换、空间滤波。
空间域技术直接对像素进行操作其表达式为:
g(x,y)=T[f(x,y)]
其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行处理的操作符,定义在点(x,y)的指定领域内。
定义点(x,y)的空间邻近区域的主要方法是,使用中心位于(x,y)的正方形或长方形区域。
此区域的中心从原点(如左上角)开始逐像素点移动,在移动的同时,该区域会包含不同的领域。
T应用于每个位置(x,y),以便在该位置得到输出图像g。
在计算(x,y)处的g值时,只使用该领域的像素。
灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。
当处理单设(灰度)图像时,这两个术语可以互换。
由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r)
其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。
核心函数是imhist,其基本语法为:
h=imhist(f,b)
其中,f为输入图像,h为其直方图h(),b是用于形成直方图像的灰度级的个数。
如果b未包含在此变量中,则默认值为256.如要处理一幅uint8
类图像并令b=2,则亮度标度范围分为两部分:0—127和128—255.所得的直方图只有两个值:h(1)等于图像在区间[0,127]内的像素总数,h(2)等于图像在区间[127,255]内的像素总数。
使用 p=imhist(f,b)/numel(f)
则可获得归一化直方图。
其中numel(f)是数组f中的元素个数(图像中的像素数)
三、实验内容:
1、图像数据读出
2、计算并分析图像直方图
3、利用直接灰度变换法对图像进行灰度变换
4、直方图绘制选项
例1:计算并绘制图像直方图
f=imread('e:\images\medicine.jpg');
imshow(f);
g=rgb2gray(f);
figure(2),imshow(g);
figure(3),imhist(g,256); %显示其直方图
g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)
figure,imshow(g1);
g2=imadjust(f,[0.5 0.75],[0 1]); %将0.5到0.75的灰度级扩展到范围[0 1]
figure,imshow(g2);
figure,subplot(1,2,1),imshow(g1);subplot(1,2,2),imshow(g2);
例2.1:显示图像的直方图
>> f=imread('e:\images\pollen.jpg');
>> whos f
Name Size Bytes Class
f 500x500x3 750000 uint8 array
Grand total is 750000 elements using 750000 bytes >>figure(1),imshow(f)
>> g=rgb2gray(f);
>> imshow(g)
>> figure,imhist(g);
2.2 学习使用imcontour函数
显示图像的等灰度值图
imcontour(I,n) n为灰度级的个数
imcontour(I,v) v是由用户指定所选的灰度级向量
>> figure(4),imcontour(g,8);
3、学习使用imadjust函数
通过直方图调整对比度
J=imadjust(I,[low high],[bottom top],gamma) 返回图像I经直方图调整后的图像J [low high] 为原图像中要变换的灰度范围
[bottom top] 指定了变换后的灰度范围
gamma为校正量
>> figure(3),imhist(g);
>> k=imadjust(g,[0.1 0.2 ] ,[ ]);
>> figure(4),imhist(k);
>> k=imadjust(g,[0.1 0.2 ] ,[ ]);
>> figure(4),imhist(k);
>> figure(5),imshow(k);
4、histeq函数
直方图均衡化
J=histeq(I,hgram)
将直方图变换成用户指定的向量hgram. hgram中的每一个元素都在[0 ,1]中。
J=histeq(I,n)
指定均衡化后的灰度级数n,缺少为64.
[J,T]=histeq(I,……)
返回从能将图像I的灰度直方图变换成图像J的直方图的变换T。
>> f=imread('e:\images\tyre.jpg');
>> whos f
Name Size Bytes Class
f 128x137x3 52608 uint8 array
Grand total is 52608 elements using 52608 bytes
>> imshow(f) >> g=rgb2gray(f);
>> figure,imhist(g);
>> k=histeq(g);
>> figure,imshow(k);
>> figure,imhist(k);
例3:
g=imread('e:\images\point.jpg');
figure(1),imshow(g);
h=log(1+double(g)); %对输入图像对数映射变换
h=mat2gray(h); %将矩阵h转换为灰度图片
h=im2uint8(h); %将灰度图转换为8位图
figure,imshow(h)
5、通过imhist函数,可以得到工具箱中默认显示的直方图。
但绘制直方图的方法还有很多,下面是一些有代表性的绘制选项。
可以利用条形图来绘制,可以使用函数:
bar( horz,v,width)
其中v是一个行向量,包含将被绘制的点;horz是一个与v有着相同的维数的向量,包含水平值的增量;width是一个值在0和1之间的数。
若省略horz,则水平轴会从0到length(v)等分为若干个单位。
当width的值为1时,竖条较明显。
当width的值为0时,竖条是简单的垂直线。
绘制条形图时,通常将水平轴等分为几段,以降低水平轴的分辨率。
例:生成一幅条形图,其水平轴以10个灰度级为一组。
h=imhist(f);
h1=h(1:10:256);
horz(1:10:256);
bar(horz,h1,1);
bar(horz,h1,0.8);
bar(h1,1);
figure(4),stem(horz,h,'fill');
axis([0 255 0 500]);
>> set(gca,'xtick',[0:50:255]);
>> set(gca,'ytick',[0:50:500]);
5、最后,考虑plot函数,该函数将一组点用直线连接起来,语法为:
plot(horz,v,’color_linestyle_marker’)
如:>>plot(horz,v,’color’,’g’,’linestyle’,’none’,’marker’,’s’)
将绘制中间无连线的绿色方形。
Plot的默认值为黑色无标记实线。
四、实验仪器
PC一台,MATLAB软件
五、实验图片
Fig.1 point.jpg Fig.2 medicine.jpg。