实验4灰度变换与直方图均值化

合集下载

灰度变换和直方图均衡化

灰度变换和直方图均衡化

100200300010*******100200300050100150实验三 图像点运算f=imread('lena.bmp'); g=power(double(f),0.8); x=0:255; y=x.^0.8;imwrite(uint8(g),'lena_d1.bmp'); figure(1); subplot(2,2,1); imshow(f); subplot(2,2,2); imshow(g,[0 255]); subplot(2,2,3); plot(x,y);clcf=imread('lena.bmp'); g=f/2;figuresubplot(121)imshow(f)subplot(122)imshow(g,[0 255])imwrite(uint8(g),'lena0.5.bmp')h=zeros(1,256); [row,col]=size(f); for i=1:row; for j=1:col;h(f(i,j)+1)=h(f(i,j)+1)+1; endend g=imread('lena0.5.bmp');x=zeros(1,256);[row,col]=size(g);for i=1:row; for j=1:col;x(g(i,j)+1)=x(g(i,j)+1)+1; end end figure subplot(121) bar(h)subplot(122) bar(x) clcf=imread('lena.bmp');010********50010001500200025003000010020030020004000600080001000012000g=power(double(f),0.8)+100; imwrite(uint8(g),'lena0.8.bmp')figuresubplot(121) imshow(f) subplot(122)imshow(g,[0 255])imwrite(uint8(g),'lena0.5.bmp')h=zeros(1,256); [row,col]=size(f); for i=1:row; for j=1:col;h(f(i,j)+1)=h(f(i,j)+1)+1; end endg=imread('lena0.5.bmp'); x=zeros(1,256); [row,col]=size(g); for i=1:row; for j=1:col;x(g(i,j)+1)=x(g(i,j)+1)+1; end end figuresubplot(121) bar(h)subplot(122) bar(x)实验三 图像点运算一、实验目的理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。

图像增强—灰度变换及直方图均衡化试验目的试验原理及知识点

图像增强—灰度变换及直方图均衡化试验目的试验原理及知识点

图像增强—灰度变换及直方图均衡化一、实验目的1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2、掌握直接灰度变换的图像增强方法。

3、掌握灰度直方图的概念及其计算方法;4、掌握直方图均衡化的计算过程;二、实验原理及知识点1、图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。

图像增强可以在空间域中执行,也可以在变换域中执行。

2、空间域指的是图像平面本身,在空间域内处理图像是直接对图像的像素进行处理。

空间域处理方法分为两种:灰度级变换、空间滤波。

空间域技术直接对像素进行操作,其表达式为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值时,只使用该领域的像素。

2、灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个灰度变换函数。

由于灰度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。

灰度拉伸又叫对比度拉伸是最基本的一种灰度变换,使用简单的分段线性变换函数,可以提高灰度的动态范围,适用于低对比度图像的处理,增强对比度。

3、直方图是多种空间城处理技术的基础。

直方图操作能有效地用于图像增强。

除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。

直方图均衡化实验报告

直方图均衡化实验报告

医学图像处理实验报告实验名称:直方图均衡化实验姓名:gao jun qiang 学号:20105405班级:生医1001指导教师:……2013年6月5日一、 实验目的1、编程实现下列功能:读出存储的黑白灰度图象并显示,显示灰度直方图,对图象进行直方图均衡化处理,显示处理后图象及直方图,画出灰度变换曲线,并存储处理后图象。

二、 实验原理直方图均衡化处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。

直方图均衡化是一种自动调节图象对比度质量的算法,使用的方法是灰度级变换:s = T(r) 。

它的基本思想是通过灰度级r 的概率密度函数p(rk ),求出灰度级变换T(r).灰度直方图的计算十分简单,依据定义在离散形式下有下面的公式成立:()1,1,0,-==L k n n k p k Λ (1) 公式中:k n 为图像中出现k s 级灰度的像素数,n 是图像像素总数,而n nk 即为频数。

计算累积直方图各项:()1,1,0,00-===∑∑==L k i p n n t k i ki i k Λ (2) 取整扩展:]5.0)1int[(+-=k k t L t (3)映射对应关系 :k t k ⇒三、实验代码及结果直方图均衡化实验代码:clc;close all;clear all;Imag = imread('lena.tiff');figure()imshow(Imag),title('原图像');ImagGray = rgb2gray(Imag);figure()imshow(ImagGray),title('灰度图像');[r,c] = size(ImagGray);%统计灰度直方图GrayPixNum = zeros(1,255);for i = 1:rfor j = 1:cGrayPixNum(1,ImagGray(i,j)) = GrayPixNum(1,ImagGray(i,j))+1;endend%对灰度直方图进行归一化GrayPixPro = GrayPixNum./(r*c);figure()plot(GrayPixPro),title('图像直方图');%-----------------------------------------------------------% -----------------------直方图均衡化------------------------%-----------------------------------------------------------%直方图累加GrayAdd = zeros(1,255);GrayAdd(1,1) = GrayPixPro(1,1);for i = 2:255GrayAdd(1,i) = GrayAdd(1,i-1)+GrayPixPro(1,i);endNewGray = round(GrayAdd.*254.+0.5);NewGrayPro = zeros(1,255);for i = 1:255GrayTemp = NewGray(1,i);NewGrayPro(1,GrayTemp) = NewGrayPro(1,GrayTemp)+GrayPixPro(1,i); endfigure()plot(NewGrayPro.*(r*c)),title('均衡化直方图');%有均衡化直方图和映射关系得到均衡化的图像NewImag = zeros(r,c);for i =1:rfor j = 1:cNewImag(i,j) = NewGray(1,ImagGray(i,j));endendNewImag = uint8(NewImag);figure()imshow(NewImag),title('均衡化的图像');figure()plot(NewGray),title('灰度变换曲线');实验结果:图1 原灰度图像图2 原图像的灰度直方图图3 经过直方图均衡化后的灰度图片图4 均衡化后的直方图图5 灰度变化曲线三、实验思考从上述实验结果可以看出,经过直方图均衡化后的图片的对比度更高,且边缘效果更高。

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

线性灰度变换一、实验目的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、掌握直方图均衡化方法。

[实验内容]1、编程实现图像的灰度直方图。

2、实现直方图均衡化。

[实验原理]灰度直方图:1、直方图概念:灰度直方图表示图像中每种灰度出现的频率。

2、直方图的作用: 反映一幅图像的灰度分布特性3、直方图的计算: nk 为图像中出现rk 级灰度的像素数,n 是图像像素总数,而 nk/n 即为频数。

直方图均衡化:1、算法思想:通过函数变换,对在图像中像素个数多的灰度 级进行展宽,而对像素个数少的灰度级进行缩减。

从而达 到清晰图像的目的。

2、变换后每一个r 都对应一个s ,变换函数须满足二个条件 :(1)T 单值单增函数。

(2)对 有 则有: [实验步骤]离散情况下的直方图均衡化的算法:1)、列出原始图像的灰度级2)、统计各灰度级的像素数目 10-≤≤L r 1)(0-≤≤L r T 10)(1-≤≤=-L s s T r 1,...2,1,010,)(-=≤≤=l k r Nn r P k k k3)、计算原始图像直方图各灰度级的频数4)、计算累积分布函数5)、计算映射后的输出图像的灰度级。

6)、用的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像。

创建相应的菜单并建立相应的消息响应函数:添加一个灰度直方图显示框。

调出资源视图窗口,添加ID为IDD_DIALOG4的对话框资源,设计如图:创建对话框类CDialog_ZFT并按下表关联对应变量:资源类型资源ID 关联变量类型图片控件IDC_zft CStatic绘制文本框IDOK intvoid CDialog_ZFT::OnOK(){CWnd *pwnd=GetDlgItem(IDC_zft);CDC *mydc=pwnd->GetDC();for(int i=0;i<count;i++){mydc->MoveTo(i+10,220);mydc->LineTo(i+10,220-data[i]*180/m_fmax);}/**************直方图****************/void CDLView::OnZft(){// TODO: Add your command handler code here if(m_DibHead==NULL){MessageBox("请打开一幅图像");return;}long w,h;w=m_DibHead->biWidth;h=m_DibHead->biHeight;int i ,j;float h1[256],h2[256];float fmax=0.0;for(i=0;i<256;i++)h1[i]=0;for(i=0;i<h;i++){for(j=0;j<w;j++){h1[*(m_Image+i*w+j)]++;}}for(i=0;i<256;i++){h2[i]=h1[i]*1.0/w/h;if(fmax<h2[i])fmax=h2[i];}CDialog_ZFT zft;zft.data=h2;zft.count=256;zft.m_fmax=fmax;zft.DoModal();}/**************直方图均衡化***************/zftjh(unsigned char *lpDib,long lWidth,long lHeight) {unsigned char *lpsrc;long lresult(0);long i,j;unsigned char bMap[256];long lCount[256];for(i=0;i<256;i++)lCount[i]=0;for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;lCount[*lpsrc]++;}for(i=0;i<256;i++){lresult=0;for(j=0;j<=i;j++)lresult+=lCount[j];bMap[i]=(lresult*255)/lHeight/lWidth;}for(i=0;i<lHeight;i++)for(j=0;j<lWidth;j++){lpsrc=lpDib+i*lWidth+j;*lpsrc=bMap[*lpsrc];}}void CDLView::OnZftjunh(){// TODO: Add your command handler code hereif(m_DibHead->biBitCount!=8){MessageBox("当前版本仅支持256色位图的操作!","系统提示!",MB_ICONINFORMATION|MB_OK);return;}zftjh(m_Image,m_DibHead->biWidth,m_DibHead->biHeight);Invalidate();}[实验结果]原图均衡化后[实验总结]通过对比图像可知,变换后直方图趋向平坦,灰级减少,灰度合并。

灰度图像直方图均衡化变换函数算法.docx

灰度图像直方图均衡化变换函数算法.docx

灰度图像直方图均衡化变换函数算法方案一:1) 灰度图像直方图均衡化算法步骤:1、列出原始图像和变换后图像的灰度级I: j = 0, 1, -L-1,其中L是灰度级的个数;2、统计原始图像个灰度级的像素个数Ni;3、计算原始图像直方图:p(i)=Ni/N,N为原始图像像素总数;4、计算累计直方图P j =》p(k), k二0, l・・・j;5、利用灰度变换函数计算变换后的灰度值,并四舍五入:j=INT[(L-l)Pj+0. 5];6、确定灰度变换关系i->j,据此将原图像的灰度值f(m, n) = i修正为g(m, n)=j;7、统计变换后各灰度级的像素个数Nj;8、计算变换后图像的直方图p(j)二Nj/N;2) m文件I=imread('football.jpg 1 );1=1(:, :,1);[m z n]=size (I);num=m*n;pre_mat=zeros(1,256);aft_mat=zeros(1,256);for i=l:mfor j=l:npre_mat(I(i z j)+1)= pre_mat(I(i z j)+1)+1;endendaft_mat (I) =aft_mat (I) /num;for k=2:256s (k) =pre_mat (k) /num;aft_mat (k) =aft_mat (k-l) + s (k);endM=zeros(叫n);aft_mat=aft_mat*255;for i=l:mfor j=l:nM(i z j)=aft_mat(I (i,j)+1);endendJ=uint8(M)subplot (3,2f l)imshow(I);1.原始图像T;subplot (3,2,2) imhist(I);title(*2.原始图像直方图'); subplot(3,2^3) imshow(J);title (! 3.均衡化图像'); subplot (3,2,4) imhist(J);title 「4 •均衡化图像直方图*);A=histeq(I); subplot(3,2^5) imshow(A);title(*5.系统均衡化图像T ; subplot (3,2,6) imhist(A);title 「6・系统均衡化图像直方图1)经实际验证:该方案对黑白图片均衡化处理有较好的效果。

图像灰度变换、二值化、直方图

图像灰度变换、二值化、直方图

图像灰度变换、⼆值化、直⽅图1、灰度变换1)灰度图的线性变换Gnew = Fa * Gold + Fb。

Fa为斜线的斜率,Fb为y轴上的截距。

Fa>1 输出图像的对⽐度变⼤,否则变⼩。

Fa=1 Fb≠0时,图像的灰度上移或下移,效果为图像变亮或变暗。

Fa=-1,Fb=255时,发⽣图像反转。

注意:线性变换会出现亮度饱和⽽丢失细节。

2)对数变换t=c * log(1+s)c为变换尺度,s为源灰度,t为变换后的灰度。

对数变换⾃变量低时曲线斜率⾼,⾃变量⼤时斜率⼩。

所以会放⼤图像较暗的部分,压缩较亮的部分。

3)伽马变换y=(x+esp)γ,x与y的范围是[0,1], esp为补偿系数,γ为伽马系数。

当伽马系数⼤于1时,图像⾼灰度区域得到增强。

当伽马系数⼩于1时,图像低灰度区域得到增强。

当伽马系数等于1时,图像线性变换。

4)图像取反⽅法1:直接取反imgPath = 'E:\opencv_pic\src_pic\pic2.bmp';img1 = imread(imgPath); % 前景图img0 = 255-img1; % 取反景图subplot(1,2,1),imshow(img1),title('原始图像');subplot(1,2,2),imshow(img0),title('取反图像');⽅法2:伽马变换Matlab:imadjust(f, [low_in, high_in], [low_out, high_out], gamma)[low_in, high_in]范围内的数据映射到 [low_out, high_out],低于low的映射到low_out, ⾼于high的映射到high_out. imgPath = 'E:\opencv_pic\src_pic\pic2.bmp';img1 = imread(imgPath); % 前景图img0 = imadjust(img1, [0,1], [1,0]);subplot(1,2,1),imshow(img1),title('原始图像');subplot(1,2,2),imshow(img0),title('取反图像');2、⼆值化1)rgb2gray⼀般保存的灰度图是24位的灰度,如果改为8bit灰度图。

图像灰度变换增强&直方图增强实验报告

图像灰度变换增强&直方图增强实验报告

实验二图像灰度变换增强&直方图增强一、实验目的1、结合实例学习图像灰度变换增强和直方图均衡化增强,并通过实验体会图像增强的效果;2、理解和掌握图像灰度变换增强和直方图均衡化增强的原理和应用,掌握利用MATLAB编程实现图像增强的方法。

二、实验内容1、图像的直方图的显示;2、图像灰度值调整到指定范围;3、图像直方图均衡化增强。

三、实验要求1、独立完成;2、编写MATLAB程序,并对程序中所调用函数的功能进行必要的说明(可用“help函数名”进行查询);3、调试运行后保存实验结果(注意保存的文件格式);4、完成实验报告。

四、实验原理1、图像对比度处理(灰度变换增强)由于图像的亮度范围不足或非线性会使图像的对比度不甚理想,可用像素幅值重新分配的方法来改善图像对比度,图像的对比度处理有线性变换、分段线性变换和非线性变换三种方法。

在MATLAB中,提供了调整灰度值至指定范围的函数imadjust,它的常见调用方法如下:J=imadjust(I):映射到[0,255]J=imadjust(I,[low_inhigh_in],[low_outhigh_out])J=imadjust(I,[low_inhigh_in],[low_outhigh_out],gamma)其中,I是输入图像,J是返回的调整后的图像,该函数把[low_in;high_in]的像素值调整到[low_out;high_out],而低于low_in的像素值映射为low_out,高于high_in的像素值映射为high_out。

(分段线性)Gamma描述了输入图像和输出图像之间映射曲线的形状,如果gamma〈l,则映射偏重更高数值(明亮)输出(指数);如果gamma>1,则映射偏重于更低数值(灰暗)输出(对数);如果gamma=1,则输入和输出之间的映射关系为一条直线(线性)。

2、灰度直方图(1)灰度直方图的定义简单地说,灰度直方图就是反映一幅图像中的灰度级与出现这种灰度的概率之间关系的图形。

数字图像处理-直方图-实验报告

数字图像处理-直方图-实验报告

实验三直方图一、实验目的掌握基本的图象增强方法,观察图象增强的效果,加深对灰度直方图及直方图均衡化的理解,掌握直方图均衡化方法。

二、实验内容将一张彩色图片转换成灰色图片,画灰度直方图和均衡化后的直方图,并将灰度图和均衡化后的图片对比。

三、实验原理灰度直方图是将数字图像中的所有像素,按照灰度值的大小,统计其所出现的频度。

通常,灰度直方图的横坐标表示灰度值,纵坐标为像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。

直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。

从而达到清晰图像的目的。

四、实验程序1.函数功能,画出图像的直方图,并对图像进行直方图均衡2.直接读图像football.jpg,读到I中3.graydis是原始直方图各灰度级像素个数4.原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro5.t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标6.new_graydis是统计新直方图各灰度级像素个数7.计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro8.计算直方图均衡后的新图new_J程序如下:I=imread('football.jpg'); %读入图片J=rgb2gray(I); %将彩色图片转换为灰度图Imshow(J);graydis=zeros(1,256); %设置矩阵大小graydispro=zeros(1,256);new_graydis=zeros(1,256);new_graydispro=zeros(1,256);[h w]=size(J);new_J=zeros(h,w);%计算原始直方图各灰度级像素个数graydisfor x=1:hfor y=1:wgraydis(1,J(x,y))=graydis(1,J(x,y))+1;endend%计算原始直方图graydisprograydispro=graydis./sum(graydis);subplot(1,2,1);plot(graydispro);title('灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算原始累计直方图for i=2:256graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);end%计算和原始灰度对应的新的灰度t[],建立映射关系for i=1:256t(1,i)=floor(254*graydispro(1,i)+0.5);end%统计新直方图各灰度级像素个数new_graydisfor i=1:256new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i); end%计算新的灰度直方图new_graydispronew_graydispro=new_graydis./sum(new_graydis);subplot(1,2,2);plot(new_graydispro);title('均衡化后的灰度直方图');xlabel('灰度值');ylabel('像素的概率密度');%计算直方图均衡后的新图new_J for x=1:hfor y=1:wnew_J(x,y)=t(1,J(x,y));endendfigure,imshow(J,[]);title('原图');figure,imshow(new_J,[]);title('直方图均衡化后的图');。

数字图像处理基本操作及灰度调整实验报告

数字图像处理基本操作及灰度调整实验报告

数字图像处理基本操作及灰度调整实验报告实验目的1.掌握数字图像处理的基本概念和原理。

2.学会使用Python编程语言进行图像处理。

3.理解并实现图像灰度调整的方法。

4.分析实验结果,讨论图像处理方法的优缺点。

2.1 数字图像处理概述数字图像处理(Digital Image Processing,DIP)是一门研究使用计算机对图像进行处理的技术。

它的目的是改善图像的质量,使之更适合人类或计算机对图像进行观察和分析。

数字图像处理涉及到图像采集、存储、传输、分析以及图像的恢复等方面。

2.2 图像的表示和描述数字图像由图像元素(像素)组成,每个像素有一个对应的灰度值。

灰度值表示像素的亮度,通常用8位二进制数表示,其范围为0~255。

像素的灰度值越高,亮度越高。

数字图像可以表示为一个矩阵,矩阵中的每个元素对应一个像素的灰度值。

彩色图像通常采用RGB颜色模型,每个像素包含三个分量,分别对应红色、绿色和蓝色通道的亮度。

2.3 图像灰度调整图像灰度调整是指调整图像像素的灰度值,以改善图像的质量。

常用的图像灰度调整方法有:1.线性灰度变换:通过线性映射关系改变图像灰度值,可以实现图像亮度的调整和对比度的拉伸。

2.直方图均衡化:通过调整图像的灰度直方图,使其均匀分布,可以提高图像的对比度。

•操作系统:Windows 10•编程语言:Python 3.8•图像处理库:OpenCV 4.5.2•集成开发环境:Visual Studio Code4.1 图像读取和显示首先,我们需要使用OpenCV库读取和显示图像。

以下是读取和显示图像的Python代码:4.2 图像灰度化为了便于后续的灰度调整操作,我们需要将彩色图像转换为灰度图像。

以下是图像灰度化的Python代码:4.3 灰度调整接下来,我们将对图像进行灰度调整。

首先,实现线性灰度变换。

以下是线性灰度变换的Python代码:4.4 图像直方图均衡化直方图均衡化是一种能够提高图像对比度的方法。

灰度修正技术(图像处理实验报告)

灰度修正技术(图像处理实验报告)

课程实验报告
我们选择的是对比度不足的pout.tif图像,从它的直方图可以算出,它的灰度值大概在[0.3 0.7]这个范围内,所以我们要调整它的灰度范围,改为[0 1],增大灰度范围,从而增强对比度。

2.直方图均衡:选择一幅灰度直方图不均匀的图像,对该图像进行直方图均衡处理,显示处理前、后的图像以及它们的灰度直方图。

由图可以看出,原始图像直方图很不均匀,大多数像素值集中分布在零附近的低灰度区,反映原图像偏暗而不清晰;均衡化后图像的直方图比较均匀,反映均衡化后图像图像比原图像清晰。

由图可以看出,原始图像直方图分布不均匀,大多数像素集中在[0.3 0.7]这个范围内,反映原图像不清晰;均衡化后图像直方图比较均匀,反映均衡化后图像比原图像清晰。

实验中的体会(如实验过程中遇到的问题及其解决的方法等)
本次实验并不难,在课上就能做完实验和完成实验报告,觉得这样的实验挺好的,课后有更多的时间可以看书。

实验过程中还是遇到了软件的问题,很不解为什么同样的代码在实验课上不能通过,但是在宿舍就可以,有时候会浪费一些时间解决软件问题。

不过还是挺开心的,每次实验课完成都能够更理解更清楚理论课的知识。

附录: (MATLAB程序)
%EX1
close all;
clear all;
I=imread('pout.tif');
J=imadjust(I,[0.3 0.7],[0 1]);
figure;
subplot(2,2,1);imshow(I);title('原始图像');
subplot(2,2,3);imhist(I);title('原始图像的直方图');。

直方图均衡化实验报告

直方图均衡化实验报告

直方图均衡化实验报告直方图均衡化实验报告引言:直方图均衡化是一种常用的图像处理技术,它可以增强图像的对比度和细节,使得图像更加清晰明亮。

本实验旨在通过实际操作验证直方图均衡化的效果,并探讨其在不同场景下的应用。

实验步骤:1. 图像获取与预处理:选择一张高对比度的彩色图像作为实验对象,通过图像处理软件将其转换为灰度图像。

确保图像的亮度范围适中,避免过亮或过暗的情况。

2. 直方图均衡化算法:实现直方图均衡化算法的代码,可以使用Python等编程语言。

算法的核心思想是将原始图像的像素值映射到新的像素值,使得新图像的直方图均匀分布在整个灰度范围内。

3. 实验结果展示:将经过直方图均衡化处理后的图像与原始图像进行对比展示。

通过观察图像的对比度、亮度和细节等方面的变化,评估直方图均衡化算法的效果。

实验结果与分析:经过直方图均衡化处理后,图像的对比度明显增强,细节更加清晰可见。

原本过亮或过暗的区域得到了适当的修正,使得整个图像的亮度分布更加均匀。

同时,图像中的细节也得到了突出,使得观察者能够更好地识别和分析图像中的内容。

在实际应用中,直方图均衡化可以用于图像增强、目标检测、图像匹配等领域。

例如,在安防监控系统中,直方图均衡化可以提高图像的对比度,使得目标物体更加明显,有利于目标检测和识别。

在医学图像处理中,直方图均衡化可以增强图像的细节,有助于医生对病灶的判断和诊断。

然而,直方图均衡化也存在一些局限性。

首先,直方图均衡化是一种全局操作,对整个图像进行处理,可能会导致某些局部细节的损失。

其次,直方图均衡化对于亮度变化较大的图像效果较差,可能会导致过度亮化或过度暗化的问题。

因此,在实际应用中,需要根据具体情况选择合适的图像处理方法。

结论:通过本次实验,我们验证了直方图均衡化在图像处理中的有效性。

直方图均衡化可以增强图像的对比度和细节,使得图像更加清晰明亮。

然而,直方图均衡化也存在一些局限性,需要根据具体情况选择合适的图像处理方法。

数字图像处理实验报告直接灰度变换和直方图均衡

数字图像处理实验报告直接灰度变换和直方图均衡

实验二:直接灰度变换和直方图均衡一、代码线性变换:LinearTransformFunc.m分段线性变换:StretchFunc.m对数变化:LogFunc.m指数变换:ExponentFunc.mLinearTransformFunc.mfunction [new]= LinearTransformFunc( original, k, d )new=original;m=size(original,1);n=size(original,2);for i=1:mfor j=1:nnew(i,j)=original(i,j)*k+d;endendnew=original*k+d;endStretchFunc.mfunction [ new ] = StretchFunc(original, x1,y1,x2,y2)new = original;w = size(new, 1);h = size(new, 2);k1 = y1 / x1;dk1 = (y2 - y1) / (x2 - x1);dk2 = (255 - y2) / (255 - x2);for i = 1 : wfor j = 1 : hx = new(i, j);if x < x1new(i, j) = k1 * x;elseif x < x2new(i, j) = dk1 * (x - x1) + y1;elsenew(i, j) = dk2 * (x - x2) + y2;endendendLogFunc.mfunction [new] = LogFunc(original,c)new=original;m=size(original,1);n=size(original,2);for i=1:mfor j=1:nnew(i,j)=c*log(double(original(i,j))+1);endendnew=c*log(double(original)+1);endExponentFunc.mfunction [new] = ExponentFunc(original,c,d)new=original;m=size(original,1);n=size(original,2);for i=1:mfor j=1:nnew(i,j)=c*original(i,j).^d;endendnew=c*original.^d;end命令行窗口调用上述.m文件:i=imread('C:\Users\Administrator\Desktop\shiyanyi.png'); i_gray=rgb2gray(i);I=double(i_gray)/255;I_LinearTransform=LinearTransformFunc(I, 1, 0.01);imshow(I_LinearTransform);I_Stretch=StretchFunc(I,0.01,0.03,0.4,0.5); imshow(I_Stretch);I_Log=LogFunc(I,1.5);imshow(I_Log);I_Exponent=ExponentFunc(I,1.1,2); imshow(I_Exponent);I1=imadjust(I,[],[0 1]);imhist(I);imhist(I1);I_junhenghua=histeq(I);imshow(I)imshow(I_junhenghua)输出图像以及直方图如下:(原图)(线性变换)(分段线性变换)(对数变换)(指数变换)(均衡化)(直方图)实验总结:1、用imadjust函数将原图像的灰度值调整到[0 1],调整后图片并没有改变,直方图也没有改变;2、图像归一化处理后设置的参数大小不同,归一化后参数设置需要很小,以避免超出所显示的范围后出现空白现象;3、线性变换、分段限行变换、指数变换、对数变换需要设置参数,参数设置的合理性对输出的图像有很大影响,很有可能因为参数设置不合理达不到预想的效果;而直方图的均衡化处理不需要设置参数,可以明显提高图像的视觉效果。

灰度图像的直方图均匀化

灰度图像的直方图均匀化

数字图像处理实验报告专业:姓名:学号:灰度图像的直方图均匀化1、实验任务⑴ 进一步掌握灰度图象直方图的概念,性质;⑵ 对一幅灰度图象实现直方图均衡化,对比修正前后的图像效果⑶ 通过Matlab 或VC++开发环境,编程实现灰度图象的直方图均匀化处理。

2、实验条件微机一台、vc++6.0集成开发环境。

3、 实验原理直方图均衡也称灰度均衡,目的是通过点运算使输入图像转换为在每一灰度级上都有相同的像素点数的输出图像(即输出的直方图是平的)。

按照图像的概率密度函数的定义: 00()A D MAXB A i i D D f D H A ===∑01()()p x H x A =其中()H x 为直方图,0A 为图像的面积。

设转换前图像的概率密度函数为()r p r ,转换后图像的概率密度函数为()s p s ,转换函数为()s f r =。

由概率论知识,我们可以得到:()()s r dr p s p r ds = 这样,如果想使转换后的图像的概率密度函数为1(即直方图为平的),则必须满足: ()r ds p r dr =等式两边对r 积分,可得: 0001()()()r r r s f r P u du H u du A ===⎰⎰该转换公式被称为图像的累积分布函数。

直方图均衡的转换公式为:00()()A D MAXB A D D f D H u du A ==⎰对于离散图像,转换公式则为:00()A D MAX B A i i D D f D H A ===∑4、实验步骤 ⑴ 实现灰度图像读取、保存模块;⑵ 编程实现图像的直方图均衡。

5、程序I=imread('F:\couple.bmp');J=histeq(I);figure(1);subplot(1,2,1);imshow(I);title('原始图像')subplot(1,2,2);imshow(J);title('直方图均衡后');figure(2);subplot(1,2,1);imhist(I);title('原始图像的直方图')subplot(1,2,2);imhist(J);title('均衡化后的直方图')6、实验结果实验采用大小为256×256的灰度图像couple.bmp 。

直方图均衡及分段灰度变换

直方图均衡及分段灰度变换

图像的直方图均衡与分段灰度变换F1003025 5100309018 董威一、基本原理与主要用途;1.直方图均衡与分段灰度变换的基本原理;直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。

它的基本思想是把原始图像的直方图变换成均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到了增强图像整体对比度的效果。

MATLAB图像处理工具箱中提供的histeq函数,可以实现直方图的均衡化。

线性变换是指在图像灰度范围内分段对逐个像元进行处理,是将原图像亮度值动态范围按线性关系(线性函数)变换到指定范围或整个动态范围。

在实际运算中给定的是2个亮度区间,即要把输入图像的某个亮度值区间[a,b]映射为输出图像的亮度值区间[c,d]。

即按线性比例对图像每一个象素灰度作灰度线性变换,改善图像视觉效果。

在实际图像处理中,为了突出感兴趣的目标或灰度区域,相对抑制不感兴趣的灰度区域,常常采用分段线性变换来进行图像灰度的处理。

MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换。

2.主要用途;在获取图像的过程中,由于噪声,光照等外界环境或设备本身的原因,原始数字图像质量会退化。

例如一般成像系统只具有一定的响应亮度,常出现对比度不足的弊病,影响视觉效果,在这些情况下需要对图像做增强处理。

图像增强可以提高清晰度,改善图像的视觉效果,突出图像中的有用信息,削弱或消除不需要的信息。

二、实现方案与源码;1.直方图均衡化;MATLAB图像处理工具箱的histep函数可以很方便的实现直方图均衡化。

由于原图片是彩色,因而在转换前需要用rgb2gray函数将图片转化为灰度图。

源程序如下:a=imread('e:\b.bmp');%读取图像b=rgb2gray(a); %转化为灰度图像subplot(121),imshow(a);subplot(122),imhist (b);实现结果如下:原图转化为的灰度图像subplot(121),imshow(b);subplot(122),imhist(b); %显示灰度图像与其直方图实现结果如下:c=histeq(b); %直方图均衡化subplot(121),imshow(b);subplot(122),imhist (b); %显示处理后的图像与其直方图实现结果如下:不调用histeq函数,利用matlab语言也可直接编程实现图像的直方图均衡化处理。

数字图像处理-基于灰度变换的图像增强(分段线性、直方图)

数字图像处理-基于灰度变换的图像增强(分段线性、直方图)

数字图像处理专业实践实验四基于点处理的图像增强◆引言图像增强是图像处理中的基本内容之一,在图像处理中占有非常重要的地位。

图像增强是指对图像的某些特征,如边缘、轮廓或对比度等进行强调或尖锐化。

当一幅图像曝光不足或过度,造成对比度过小或过大而不能显示具体细节,通过增加这些细节的动态范围改善图像的视觉效果。

图像增强可以突出图像中所感兴趣的特征信息,改善图像的主观视觉质量,提高图像的可懂度。

增强的首要目标是处理图像,使其比原始图像更适合于特定应用。

图像增强的方法主要分为两类: 空间域增强法和频域增强法。

“空间域”一词是指图像平面本身,这类方法是以对图像像素直接处理为基础的;“频率域”处理技术是以修改图像的傅氏变换为基础的。

增强处理可将其灰度范围拉伸到0-255 的灰度级之间来显示,从而使图像对比度提高,质量改善。

增强主要以图像的灰度直方图最为分析处理的基础。

直方图均衡化能够增强整个图像的对比度,提高图像的辨析程度,算法简单,增强效果好。

基于点处理的图像增强方法有:灰度线性变换、灰度非线性变换、灰度分段线性变换和直方图均衡化,本文主要讨论灰度分段线性变换和直方图均衡化对图像的增强,并用MATLAB进行实验验证。

◆图像增强的研究意义图像增强是数字图像处理的最基本的方法之一,它是为了改善视觉效果或便于人或机器对图像的分析理解,根据图像的特点或存在的问题,以及应用目的所采取的改善图像质量的方法或加强图像的某些特征的措施。

图像在成像、采集、运输、复制等过程中不可避免地会造成某些降质。

如在成像过程中由于光学系统会导致图像失真,不同的光照条件会使图像的曝光度差异很大,运动状态下成像会使图像模糊;而在传输过程中,各种噪声和干扰将污染图像。

因此,通常需要对降质的图像进行预处理,以满足后期处理及分析的需要。

图像复原是改善图像的一类方法,这类方法会尽可能还原图像的本来面目,追求提高图像的保真度。

而图像增强则是一类追求图像可懂度的方法,通过处理有选择地突出某些感兴趣的信息,便于人或机器分析这些信息,抑制一些无用的信息,以提高图像的使用价值。

数字图像处理灰度实验

数字图像处理灰度实验

数字图像处理实验报告学院:专业:姓名:学号:直方图和直方图均衡化一、实验目的1. 改善图像的视觉,提高清晰度;2. 增强人们感兴趣部分,到视觉效果更好的图像,以提高图像的可懂度。

3、增强直方图均衡化的认识和了解二、实验原理直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。

设非均匀直方图分布函数P r (r )经转换函数s=T (r )转化为均匀直方图分布函数P s (s)的情况,r 为变化前的归一化灰度级,0≤r ≤1. T (r )为转换函数, s=T (r )为变化后的归一化灰度级,则T (r )应满足以下条件:(1)在0≤r ≤1,范围内是一个单值单增函数。

(2)对于0≤r ≤1,对应有0≤s=T (r )≤1.保证变换后像素灰度级仍在允许范围内。

在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk 到gk 的灰度映射关系。

在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化三、实验主要内容1、统计原始图像的直方图,求出2、用累积分布函数作变换,求变换后的新灰度; 3、用新灰度代替旧灰度,求出,这一步是近似的,力求合理,同时把灰度相等的或相近的合在一起。

四、实验程序及结果1、实验程序#include<stdio.h>#include<math.h>#include<stdlib.h>void main(){ int c,i=0,j=0,y;long sum=0,su=0,k=0,l=0,t=0,h=0;static inta[256],a1[256],b[256],s[256],d[256][256],d1[65536],B[256][256],d2[655 36];FILE *fp,*fp1;char filename[20],filename1[20];double p1[256],p2[256];printf(" 输入文件名:");scanf("%s",filename);printf(" 输入新的文件名:");scanf("%s",filename1);if ((fp=fopen(filename,"rb"))==0){printf("不能打开文件\n");exit(0);}fp1=fopen(filename1,"w");while(!feof(fp)){c=fgetc(fp);a[c]++; }rewind(fp);while(!feof(fp)){c=fgetc(fp);d2[t]=c;t++;}t=0;for(i=0;i<256;i++)for(j=0;j<256;j++){B[i][j]=d2[t];t++;}for(i=0;i<256;i++)printf("%d\t",a[i]);printf("\n");for(i=0;i<256;i++){sum=sum+a[i];}printf("%d\n",sum);for(i=0;i<256;i++)p1[i]=a[i]/65536.0;}p2[0]=p1[0];for(i=1;i<256;i++){p2[i]=p2[i-1]+p1[i];}for(i=0;i<256;i++){s[i]=(int)(p2[i]*255+0.5);}for(i=0;i<256;i++)for(j=0;j<256;j++){d[i][j]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++){ y=B[i][j];d[i][j]=s[y];}}for(i=0;i<256;i++)for(j=0;j<256;j++){d1[h]=d[i][j];h++;}for(i=0;i<256;i++){b[i]=0;}for(i=0;i<256;i++){ for(j=0;j<256;j++)if(i==s[j])b[i]=b[i]+a[j];}printf("输出\n");for(i=0;i<255;i++){printf("%d\t",b[i]);printf("\n");for(i=0;i<256;i++){su=su+b[i];}printf("%d\n",su);for(h=0;h<65536;h++){fputc(d1[h],fp1);}printf("新文件已保存\n");fclose(fp);fclose(fp1);}2、实验结果五、结果分析本次实验通过对图像进行均衡化处理,即把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,也就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同,然而这样做却使图像的灰度值减少,甚至细节消失,而部分图像的对比度过分增强,直方图有高峰,影响了图像的实际效果。

【OpenCV】图像增强---灰度变换、直方图均衡化

【OpenCV】图像增强---灰度变换、直方图均衡化

【OpenCV】图像增强---灰度变换、直⽅图均衡化图像增强的⽬的:改善图像的视觉效果或使图像更适合于⼈或机器的分析处理。

通过图像增强,可以减少图像噪声,提⾼⽬标与背景的对⽐度,也可以增强或抑制图像中的某些细节。

---------------------------------------------------------------------------------------------------灰度变换:把原图像的像素灰度经过某个函数变换成新图像的灰度。

可分为直线灰度变换法和直⽅图修正法。

直线灰度变换法:线性、分段线性、⾮线性变换。

直⽅图修正法:直⽅图均衡化、直⽅图规定化。

---------------------------------------------------------------------------------------------------图像直⽅图:是对像素的某种属性(如灰度、颜⾊、梯度等)分布进⾏统计分析的重要⼿段。

灰度直⽅图:是灰度级的函数,它反映了图像中每⼀灰度级出现的次数或频率。

直⽅图均衡化:把原始图像的直⽅图变换为均匀分布的形式,从⽽增加图像灰度的动态范围,以达到增强图像对⽐度的效果。

经过均衡化处理的图像,其灰度级出现的概率相同,此时图像的熵最⼤,图像所包含的信息量最⼤。

【注意,离散后是每块区域的概率相等,均衡化后并不是条直线哦。

】 细节概念等省略......---------------------------------------------------------------------------------------------------线性灰度增强、对数变换、指数变换、直⽅图均衡化。

代码见下(代码略粗糙...)【ImageEnhance.cpp部分代码】1//线性灰度增强2bool CImageEnhance::GrayLinearTransform(Mat &src, Mat &dst, uchar c, uchar d)3 {4int b=0,a=255;5 dst = src.clone();6int row = dst.rows, col = dst.cols * dst.channels();7 uchar *cc = dst.data;8for(int i = 0; i < row; ++i) {9for(int j = 0; j < col; ++j) {10int val = *cc;11if(a > val) a = val;12if(b < val) b = val;13 cc++;14 }15 }16 cc = dst.data;17float k = float(d - c)/(b-a);18//CString c1; c1.Format(_T("a=%d,b=%d,c=%d,d=%d,k=%.2f\n"), a,b,c,d,k);MessageBox(c1);19for(int i = 0; i < row; ++i) {20for(int j = 0; j < col; ++j) {21int val = *cc;22int s = (int)(k*(val - a) + c);23 *cc = s;24 cc++;25 }26 }27return true;28 }29//对数变换30bool CImageEnhance::GraynoLinearlog(Mat &src, Mat &dst) {31 dst = src.clone();32int row = dst.rows, col = dst.cols * dst.channels();33 uchar *cc = dst.data;34double k = 255 / log10(256.0);35for(int i = 0; i < row; ++i) {36for(int j = 0; j < col; ++j) {37int val = *cc;38 *cc = k * log10(1.0*(val + 1));39 cc++;40 }41 }42return true;43 }44//指数变换45bool CImageEnhance::GraynoLinearindex(Mat &src, Mat &dst) {46 dst = src.clone();47int row = dst.rows, col = dst.cols * dst.channels();48 uchar *cc = dst.data;49double k = 1.0 / 255;50for(int i = 0; i < row; ++i) {51for(int j = 0; j < col; ++j) {52int val = *cc;53 *cc = k * val * val;54 cc++;55 }56 }57return true;58 }5960 MatND CImageEnhance::getHist1(Mat& image)61 {62 MatND hist;63int channels[] = {0};64int dims = 1;65int histSize[] = {256}; //直⽅图箱⼦的个数66float granges[] = {0, 255};67const float *ranges[] = {granges}; //像素值范围68//计算直⽅图69 calcHist(&image, 1, channels, Mat()/*不使⽤掩码*/, hist, dims/*这是⼀维的直⽅图*/, histSize, ranges);70return hist; //这⾥得到的hiat是256⾏⼀列的Mat71 }7273//直⽅图均衡化74bool CImageEnhance::Equalize_hist(cv::Mat& src,cv::Mat& dst)75 {76//CMFC_Test_lyyDlg pic;77 MatND hist;78int channels[] = {0};79int dims = 1;80int histSize[] = {256}; //直⽅图箱⼦的个数81float granges[] = {0, 255};82const float *ranges[] = {granges}; //像素值范围83//计算直⽅图84 Mat image = src.clone();85 calcHist(&image, 1, channels, Mat()/*不使⽤掩码*/, hist, dims/*这是⼀维的直⽅图*/, histSize, ranges);8687//MatND hist = getHist1(src);//pic.getHist(dst);88float s[256];89float p[256];9091 cv::Mat lookup(cv::Size(1, 256), CV_8U);92int pixNum = src.cols * src.rows;//总像素个数93for (int i =0; i <256; i++) {94 s[i] = hist.at<float>(i) / pixNum;95if (i ==0) {96 p[i] = s[i];97 }98else {99 p[i] = p[i -1] + s[i];100 }101 }102for (int i =0; i <256; i++) {103 lookup.at <uchar>(i) = static_cast<uchar>(p[i]*255.0);104 }105106 cv::LUT(src, lookup, dst);//创建矩阵,把⼀个像素值映射到另⼀个像素值107return true;108 }ImageEnhance.cpp效果如下:原图像:线性灰度增强:我这⾥默认a和b表⽰原图像灰度值的最⼩与最⼤值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像增强—灰度变换及直方图均衡化
一、实验目的
1、了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2、掌握直接灰度变换的图像增强方法。

3、掌握灰度直方图的概念及其计算方法;
4、掌握直方图均衡化的计算过程;
二、实验原理及知识点
1、图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。

其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。

图像增强可以在空间域中执行,也可以在变换域中执行。

2、空间域指的是图像平面本身,在空间域内处理图像是直接对图像的像素进行处理。

空间域处理方法分为两种:灰度级变换、空间滤波。

空间域技术直接对像素进行操作,其表达式为
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值时,只使用该领域的像素。

2、灰度变换T的最简单形式是使用领域大小为1×1,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个灰度变换函数。

由于灰度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式:
s=T(r)
其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。

灰度拉伸又叫对比度拉伸是最基本的一种灰度变换,使用简单的分段线性变换函数,可以提高灰度的动态范围,适用于低对比度图像的处理,增强对比度。

3、直方图是多种空间城处理技术的基础。

直方图操作能有效地用于图像增强。

除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。

直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。

直方图是图像的最基本的统计特征,反映的是图像的灰度值的分布情况。

图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。

直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。

直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。

直方图均衡化是图像预处理中涉及最广泛的基本概念之一。

直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都尽量具有相同的象素点数的过程。

三、实验内容
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)
4、自己编写分段灰度变换函数T,使得:
0.3r r < 0.35
s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65
1 + 0.3(r – 1) r > 0.65
用T对下面的图像进行处理,在同一窗口显示处理前后的图像。

原始图像处理后图像
5、执行下面给出的MATLAB程序,观察直方图均衡化增强图像对比度的效果:
I=imread(‘pollen.jpg); %读入原图像
J=histeq(I); %对原图像进行直方图均衡化处理
imshow(I); %显示原图像
title(‘原图像’); %给原图像加标题名
%对原图像进行屏幕控制;显示直方图均衡化后的图像
figure;imshow(J);
title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名
figure; subplot(1,2,1) ; %对直方图均衡化后图像进行屏幕控制;作一幅子图,并排两幅图的第1幅
imhist(I,64); %将原图像直方图显示为64级灰度
title(‘原图像直方图’) ; %给原图像直方图加标题名
subplot(1,2,2); %作第2幅子图
imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度
title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名
处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。

从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。

6、自己实现直方图均衡化函数
把处理结果与调用matlab函数histeq的结果对比。

四、实验仪器
PC机一台,MA TLAB软件
五、实验图片
Fig.1 point.jpg Fig.2 medicine_pic.jpg
Fig.1 pollen.jpg
六、实验报告要求
描述实验的基本步骤,用文字和图片给出各个步骤中取得的实验结果和源代码,并进行必要的讨论。

七、思考题
1.直方图是什么概念?它反映了图像的什么信息?
2.直方图均衡化是什么意思?它的主要用途是什么?。

相关文档
最新文档