实验报告图像锐化

合集下载

图像的平滑与锐化

图像的平滑与锐化

昆明理工大学(数字图像处理)实验报告实验名称:图像的平滑与锐化专业:电子信息科学与技术姓名:学号:成绩:[实验目的]1、理解图像平滑与锐化的基本原理。

2、掌握图像滤波的基本定义及目的。

3、理解空间域滤波的基本原理及方法。

4、编程实现图像的平滑与锐化。

[实验原理]空间滤波器都是基于模板卷积,其主要工作步骤是:1)将模板在图中移动,并将模板中心与图中某个像素位置重合;2)将模板上的系数与模板下对应的像素相乘;3)将所有乘积相加;4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。

1、图像的平滑目的:减少噪声方法:空域法:邻域平均法、低通滤波、多幅图像求平均、中值滤波(1)邻域平均(均值滤波器)所谓的均值滤波是指在图像上对待处理的像素给一个模板,该模板包括了其周围的邻近像素。

将模板中的全体像素的均值来替代原来的像素值的方法。

(2)中值滤波(统计排序滤波)一般地 , 设有一个一维序列 f1 , f2 , f3 ,…, fn ,取该窗口长度(点数)为 m (m为奇数 ),对一维序列进行中值滤波,就是从序列中相继抽取m 个数 fi-v , … , fi-1, fi,fi+1 , … , fi+v;其中 fi 为窗口的中心点值 ,v = ( m - 1 )/ 2 。

再将这 m 个点 值按 其数值大小排序,取中间的 那个数作为滤波输出 ,用数学公式表示为:yi = med fi-v,…,fi-1,fi,fi+1,…,fi+v其中i ∈Z,v=(m-1)/2 。

中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代指定点(一般是窗口的中心点)的灰度值。

二维中值滤波可有下式表示 :yi = med { fij }中值滤波的性质有 :(1) 非线性 , 两序列 f ( r ) , g ( r )med{ f ( r ) + g ( r ) } ≠ med{ f ( r ) } + med{ g ( r ) }(2) 对尖峰性干扰效果好,即保持边缘的陡度又去掉干扰,对高斯分 布噪声效果差;(3) 对噪声延续距离小于W/2的噪声抑制效果好,W 为窗口长度。

图像锐化

图像锐化

实验七图像锐化
一、实验题目
利用MATLAB实现图像锐化,感受各种不同的图像处理方法对最终图像效果的影响二、实验仪器
实验室电脑,MATLAB软件
三、实验原理
图像锐化处理主要用于图像增强中的轮廓边缘、细节以及灰度跳边部分、形成完整的物体边界,达到将物体从图像中分离出来或将同一物体表面的区域检测出来的目的
图像边缘的特性是图像中特性(像素灰度。

纹理)分布的不连续处,图像周围特性有阶跃变化的像素集合
四、实验内容
1.微分法(梯度法、Sobel算子法、拉普拉斯运算法)
微分法的目的是利用微分运算求信号的变化率,加强高频分量的作用,从而使轮廓更清晰。

2、利用MATLAB提供的edge函数,选择三种边缘检测算子对图像进行边缘检测显示结

3、对图像采用添加高斯和椒盐噪声,然后对有噪声的图像进行边缘检测,显示检测出
的边缘图像
五、实验截屏
实验代码如下
六、实验心得
数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的图像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。

二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。

通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像。

实验五 图像的锐化

实验五  图像的锐化

实验五 图像的锐化一、实验目的1、掌握图像锐化的主要原理和常用方法;2、掌握常见的边缘提取算法。

3、利用Matlab 实现图像的边缘检测。

二、实验原理及内容图像边缘是图像中特性(如象素灰度、纹理等)分布的不连续处,图像周围特性有阶跃变化或屋脊状变化的那些象素集合。

图像边缘存在于目标与背景、目标与目标、基元与基元的边界,它标示出目标物体或基元的实际含量,是图像识别信息最集中的地方。

图像的锐化处理主要用于增强图像中的轮廓边缘、细节以及灰度跳变部分,形成完整的物体边界,达到将物体从图像中分离出来或将表示同一物体表面的区域检测出来的目的。

边缘增强是要突出图像边缘,抑制图像中非边缘信息,使图像轮廓更加清晰。

由于边缘占据图像的高频成分,所以边缘增强通常属于高通滤波。

常用的边缘检测方法有:微分法以及高通滤波法等。

1、微分法微分法的目的是利用微分运算求信号的变化率,加强高频分量的作用,从而使轮廓清晰。

微分法又可分为梯度法、Sobel 算子法以及拉普拉斯运算法.(1)梯度法对于图像),(y x f ,它在点),(y x f 处的梯度是一个矢量,定义为:Ty f x f y x f G ⎥⎦⎤⎢⎣⎡∂∂∂∂=)],([ 梯度的方向在函数),(y x f 最大变化率的方向上,梯度的幅值为:2/12)(2)(x f x f f ∂∂+∂∂=∇梯度的数值就是),(y x f 在其最大变化率方向上的单位距离所增加的量。

对于图像而言,微分x f ∂∂和yf ∂∂可用差分来近似。

)1,(),(),1(),(--+--=∆+∆=∇y x f y x f y x f y x f y x f当梯度计算完后,可采用以下几种形式突出图像的轮廓。

(1)梯度直接输出使各点的灰度),(y x g 等于该点的梯度:)],([),(y x f G y x g =这种方法简单、直接。

但增强的图像仅显示灰度变化比较陡的边缘轮廓,而灰度变换比较平缓的区域则呈暗色。

图像锐化报告

图像锐化报告

一,实验目的。

1、掌握图像锐化的主要原理和常用方法2、掌握常见的边缘提取算法3、利用C#实现图像的边缘检测二,实验原理。

图像锐化就是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰,亦分空域处理和频域处理两类。

图像平滑往往使图像中的边界、轮廓变的模糊,为了减少这类不利效果的影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。

图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变的清晰。

从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。

在水下图像的增强处理中除了去噪,对比度扩展外,有时候还需要加强图像中景物的边缘和轮廓。

而边缘和轮廓常常位于图像中灰度突变的地方,因而可以直观地想到用灰度的差分对边缘和轮廓进行提取。

图像边缘锐化的基本方法:微分运算,梯度锐化,边缘检测。

微分运算微分运算应用在图像上,可使图像的轮廓清晰。

微分运算有:纵向微分运算,横向微分运算,双方向一次微分运算。

单向微分运算双向微分微分运算作用:相减的结果反映了图像亮度变化率的大小。

像素值保持不变的区域,相减的结果为零,即像素为黑;像素值变化剧烈的区域,相减后得到较大的变化率,像素灰度值差别越大,则得到的像素就越亮,图像的垂直边缘得到增强。

梯度锐化: 图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要利用图像鋭化技术,使边缘变得清晰。

梯度锐化常用的方法有:直接以梯度值代替;辅以门限判断;给边缘规定一个特定的灰度级;给背景规定灰度级;根据梯度二值化图像。

边缘检测边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。

大多数是基于方向导数模板求卷积的方法。

将所有的边缘模板逐一作用于图像中的每一个像素,产生最大输出值的边缘模板方向,表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值都近似相等,没有可靠边缘方向。

实验报告-图像锐化

实验报告-图像锐化
{
lWidth=m_BmpInfo.bmiHeader.biWidth;
lHeight=m_BmpInfo.bmiHeader.biHeight;
//分配内存,以保存新DIB
hDIB=GlobalAlloc(GHND,nBytePerLine*lHeight);
//判断是否内存分配失败
if(hDIB==NULL)
3.编写图像锐化的彩色图像灰度化,Sobel算法锐化,图像二值化处理相关的程序代码。
4.对程序进行相关调试,修改程序,去除其中的BUG。
5.利用自己准备的图像的文件和编写的程序,进行图像锐化处理。
6.截屏,保留实验结果,进行实验结果分析,并撰写实验报告。
三、相关背景知识
(写你自己觉得比较重要的与本实验相关的背景知识)
+ 0*val21+ 0*val22+ 0*val32
+ 1.0*val11+ 2.0*val12+ 1.0*val13;
//计算梯度的大小
Sobel=sqrt(gx*gx+gy*gy);
*(pImageDataNew+j*nBytePerLine+i* 3 + 0) =int(Sobel);
*(pImageDataNew+j*nBytePerLine+i* 3 + 1) =int(Sobel);
lHeight=m_BmpInfo.bmiHeader.biHeight;
for(intj= 0 ;j<lHeight;j++)
{
for(inti= 0 ;i<lWidth;i++)
{
//灰度化临时值

系统实验(DSP)--图像的锐化处理、图像的边缘检测

系统实验(DSP)--图像的锐化处理、图像的边缘检测

系统实验(DSP)--图像的锐化处理、图像的边缘检测DSP 实验报告一、 图像的锐化处理(高通滤波处理)1、 实验原理处理模板如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--+--=004100αααααM 25.0=α对应数学表达式:()[])1,(),1()1,(),1(),(41),(++++-+--+=y x f y x f y x f y x f y x f y x g αα2、 C 程序及运行结果程序:Acute_RGB_Image(int *buffer){int x,y;for (y=0;y<ImageHeight;y++)for (x=0;x<ImageWidth;x++){buffer[y*ImageWidth+x]=2*buffer[y*ImageWidth+x]-(buffer[y*ImageWidth+x-1]+buffer[(y-1)*ImageWidth+x]+buffer[y*ImageWidth+x+1]+buffer[(y+1)*ImageWidth+x])/4;if(buffer[ImageWidth*y+x]>255)buffer[ImageWidth*y+x]=255;else if (buffer[ImageWidth*y+x]<0)buffer[ImageWidth*y+x]=0;}}运行结果:锐化前锐化后分析:从上面两幅图可以看出锐化后的图像轮廓变得明显,且噪声变得强烈。

3、汇编程序及运行结果程序:ImageAcuteSub(ImageWidth,ImageHeight,buffer_red);ImageAcuteSub(ImageWidth,ImageHeight,buffer_green);ImageAcuteSub(ImageWidth,ImageHeight,buffer_blue);.mmregs.def _ImageAcuteSub.text_ImageAcuteSub:mov t0,brc1 ;IMAGE WIDTHmov t1,brc0 ;IMAGE HEIGHTrptb y_looprptb x_loopmov *ar0(#1),ac1;f(x+1,y)add *ar0(#-1),ac1 ;f(x-1,y)add *ar0(#-250),ac1 ;f(x,y-1)add *ar0(#250),ac1 ;f(x,y+1)sfts ac1,#-2mov *ar0<<#1,ac0;2f(x,y)sub ac1,ac0bcc branch1,ac0<0sub #255,ac0,ac1bcc branch2,ac1>0mov ac0,*ar0+b x_loopbranch1: mov #0,*ar0+b x_loopbranch2: mov #255,*ar0+ x_loop: nopy_loop: nopRET运行结果:锐化前 锐化后分析:可以看出汇编的结果和C 程序的结果是一致的。

实验二 图像空域锐化增强

实验二   图像空域锐化增强

数字图像处理实验报告姓名:田蕾 学号:20091202098 专业:信号与信息处理 年级:09实验二 图像空域平滑滤波一、 实验目的理解图象锐化的概念,掌握常用空域锐化增强技术。

进一步加深理解和掌握图像锐化的原理和具体算法。

理解图象锐化增强的处理过程和特点。

二、 实验内容1、一阶微分锐化增强设计程序,分别实现Roberts 、Sobel 、Priwitt 算子的锐化处理。

观察处理前后图像效果,分析实验结果和算法特点。

2、拉普拉斯锐化增强设计程序,实现拉普拉斯图像和原始图像叠加的增强处理,即{22(,)(,)(,)(,)(,)f x y f x y f x y f x yg x y -+∇∇ (拉普拉斯模板中心系数为负和拉普拉斯模板中心系数为正) 观察处理前后图像效果,分析实验结果和算法特点。

三、 实验原理Roberts 、Sobel 、Priwitt 算子都是突出图像的细节或者是增强被模糊了的细节。

因此要对图像实现锐化处理,可以用空间微分来完成,但是,这样图像的微分增强了边缘和其他的突变(如噪声)并削弱了灰度变化缓慢区域。

拉普拉斯算子具有各向同性的特点,这种滤波器的响应与滤波器作用的图像的突变方向无关。

即各向同性滤波器旋转不变,原图像旋转后进行滤波后处理给出的结果与先对图像滤波然后再进行旋转地结果相同。

四、 算法设计(含程序设计流程图)五、 实验结果及分析(需要给出原始图像和处理后的图像)原图Roberts 算子锐化处理后图像叠加图原图sobel 算子锐化处理后图像叠加图原图P r w t t 算子锐化处理后的图像叠加图原图L a p a c e 算子锐化处理后图像叠加图实验结果分析:(1)Roberts 算子,Sobel 算子和Priwitt 算子用来实现消除图像模糊地增强的方法。

即“锐化”。

此处理是为了加强图像的边界和细节。

Roberts 算子提出的是在2*2的邻域上计算对角导数,Sobel 算子提出了一种将方向差分局部均匀相结合的方法。

图像锐化设计中期检查报告

图像锐化设计中期检查报告

图像锐化设计中期检查报告1. 项目背景图像锐化是一种常见的图像处理技术,目的是使图像中的边缘和细节更加清晰和明显。

在实际应用中,图像锐化被广泛应用于数字摄影、医学图像处理、机器视觉等领域。

本项目旨在设计一个高效的图像锐化算法,通过增强图像的边缘和细节,提高图像质量。

2. 目标和任务本项目的核心目标是设计一个高质量、高效率的图像锐化算法。

为了实现这一目标,我们将完成以下任务:- 对已有的图像锐化算法进行调研和分析,了解各种算法的原理和优缺点;- 确定本项目所要使用的图像锐化算法;- 实现图像锐化算法的原型,并测试其在不同图像数据上的性能;- 分析测试结果,根据反馈进行优化和改进。

3. 调研和分析在项目的初期阶段,我们进行了大量的图像锐化算法调研和分析。

我们主要关注了以下几种算法:3.1 Laplacian算子Laplacian算子是一种常见的边缘检测算子,也可用于图像锐化。

其原理是通过计算图像的二阶导数来寻找图像中的边缘。

然后,将边缘信息与原始图像进行加权叠加,实现锐化效果。

3.2 Unsharp MaskingUnsharp Masking是一种经典的图像锐化算法,其基本思想是将原始图像与其高斯模糊图像进行差分运算,然后将得到的差分图像叠加到原始图像上。

通过减少图像的模糊程度,强调图像的边缘和细节。

3.3 双边滤波双边滤波算法是一种结合了空间滤波和灰度相似性的图像平滑算法。

它通过对图像进行平滑,并保持边缘的锐利度。

对于图像锐化,可以先对图像进行双边滤波,然后将滤波后的图像与原始图像进行加权叠加。

4. 研发进展在调研和分析的基础上,我们选择了Unsharp Masking算法作为本项目的核心算法,并开始了原型的实现。

截止目前,我们已完成了以下工作:- 实现了Unsharp Masking算法原型,包括高斯模糊、差分运算和叠加等步骤;- 测试了原型算法在不同图像数据上的性能和效果,发现了一些潜在的问题和改进空间;- 对测试结果进行了分析,总结了原型算法的优缺点,并制定了改进方向。

实验二报告 图像锐化、伪彩色处理

实验二报告 图像锐化、伪彩色处理

实验二图像锐化及伪彩色处理
一、实验目的:
1、掌握图像锐化、伪彩色处理的基本原理和基本方法,加深对其的感性认识,巩固所学理论知识。

2、编写MATLAB程序,采用不同算子对图像进行锐化处理。

3、编写MATLAB程序,实现对灰度图像的伪彩色处理。

4、学会比较图像处理结果并分析原因。

二、实验要求
1.能够对单色图像进行伪彩色处理,能够分析彩色图像。

2.能够自行评价各主要算子在无噪声条件下和噪声条件下的锐化性能。

完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。

三、实验仪器
PC一台,MATLAB软件。

(一) 试分别用roberts、sobel 、Prewitt、log四种算子编写MATLAB程序对Miss.bmp图像及添加高斯噪声的Miss图像进行锐化,提取边缘信息。

要求:
1. 显示原图像和对其锐化后的各个图像,并分别为之命名为:“原始图像”、“Robert算子锐化结果”、“sobel算子锐化结果”、“Prewitt算子锐化结果”、“高斯-拉普拉斯算子锐化结果”
2. 显示添加噪声的图像及对其锐化后的各个图像,并分别为之命名为:“添加噪声后的图像”、“Robert算子锐化结果”、“sobel算子锐化结果”、“Prewitt算子锐化结果”、“高斯-拉普拉斯算子锐化结果”
3.比较几种方法的锐化效果,并分析原因
程序实现
(二) 运行下列采用8个灰度级密度分割的伪彩色变换程序,观察结果,并分别采用2、16、32个灰度级进行伪彩色处理,编程后运行,观察并比较结果。

(三)采用灰度级彩色变换的方法,编写MATLAB程序,实现Miss.bmp图像的灰度级彩色变换。

[整理]图像边缘锐化(拉普拉斯锐化)

[整理]图像边缘锐化(拉普拉斯锐化)

广州大学学生实验报告开课学院及实验室:物理与电子工程学院 2015年5月22日班级光信121 姓名学号1219300055 指导老师实验课程名称数字信号处理实验Ⅰ成绩实验项目名称图像边缘锐化(拉普拉斯锐化)一、实验目的二、实验原理三、使用仪器、材料四、实验步骤五、实验过程原始记录(数据、图案、计算等)六、实验结果及分析一.实验目的了解锐化的算法和用途,学习利用拉普拉斯锐化运算的程序设计方法。

二、实验原理图象锐化处理的目的是使模糊的图象变得更加清晰起来。

图象的模糊实质就是图象受到平均或积分运算造成的,因此可以对图象进行逆运算如微分运算来使图象清晰化。

从频谱角度来分析,图象模糊的实质是其高频分量被衰减,因而可以通过高通滤波操作来清晰图象。

但要注意,能够进行锐化处理的图象必须有较高的信噪比,否则锐化后图象信噪比反而更低,从而使噪声的增加得比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。

图象锐化一般有两种方法:一种是微分法,另外一种是高通滤波法。

拉普拉斯锐化法是属于常用的一种微分锐化方法。

拉普拉斯运算是偏导数运算的线性组合,而且是一种各向同性(旋转不变)的线性运算。

四.实验步骤1.实验准备:连接实验设备:请参看本书第三部分、第一章、二。

连接ICETEK-TVP5150-E 板:请参看实验9.1、四、1。

2.打开工程,浏览程序:目录为C:\ICETEK-VC5509-EDULab\Lab0904-Sharp\Demo.pjt。

3.编译并下载程序。

4.打开工程“Demo.pjt”中的 C 语言源程序“main.c”,在程序中有“BreakPoint”注释的语句上加软件断点。

5.设置观察窗口:*选择菜单V iew->Graph->Image,做如下设置:*选择菜单V iew->Graph->Image,做如下设置:6.运行程序:按“F5”键运行到断点,观察结果。

7.退出CCS:请参看本书第三部分、第一章、六。

图像锐化实验

图像锐化实验

湖南文理学院实验报告课程名称:图像处理技术实验 实验名称:图像锐化实验图像 成绩: 学生姓名: 梅万里 专业: 网络工程 班级、学号:08101班22号 同组者姓名: 实验日期:一、 实验目的1.理解图像锐化的目的和常用算法; 2.掌握微分算子对图像锐化的方法; 3.掌握常用的空域锐化滤波方法; 4.利用MATLAB 观察图像锐化的效果。

二、 实验原理图像锐化处理是改善图像视觉效果的手段,用来对图像的轮廓或边缘进行增强,减弱或消除低分频率分量而不影响高频分量。

图像锐化处理的主要技术体现在空域和频域的高通滤波,而空域高通滤波主要用模版卷积来实现。

(一)梯度算子法在图像处理中,一阶导数通过梯度来实现,因此利用一阶导数检测边缘点的方法就称为梯度算子法。

梯度值正比于像素之差。

对于一幅图像中突出的边缘区,其梯度值较大;在平滑区域梯度值小;对于灰度级为常数的区域,梯度为零。

1. Roberts 梯度算子法Roberts 梯度就是采用对角方向相邻两像素之差,故也称为四点差分法。

对应的水平和垂直方向的模板为:标注 的是当前像素的位置(i,j)为当前像素的位置,其计算公式如下:特点:用4点进行差分,以求得梯度,方法简单。

其缺点是对噪声较敏感,常用于不含噪声的图像边缘点检测。

梯度算子类边缘检测方法的效果类似于高通滤波,有增强高频分量,抑制低频分量的作用。

这类算子对噪声较敏感,而我们希望检测算法同时具有噪声抑制作用。

所以,下面给出的平滑梯度算子法具有噪声抑制作用。

(1)Prewitt 梯度算子法(平均差分法)因为平均能减少或消除噪声,Prewitt 梯度算子法就是先求平均,再求差分来求梯度。

水平和垂直梯度模板分别为:利用检测模板可求得水平和垂直方向的梯度,再通过梯度合成和边缘点判定,就可得到平均差分法的检测结果。

(2)Sobel 算子法(加权平均差分法)Sobel 算子就是对当前行或列对应的值加权后,再进行平均和差分,也称为加权平均差分。

图像锐化算法实现

图像锐化算法实现

南京信息工程大学实验(实习)报告实验(实习)名称图像锐化算法实现实验(实习)日期 ***** 得分指导教师 ***学院 **** 专业 **** 年级 * 班次* 姓名 *** 学号 ***********一、实验目的:1.了解图像锐化的目的和意义,巩固所学的图像锐化的理论知识和相关算法;2.掌握微分算子对图像锐化的方法;3.熟练掌握空域中常用的锐化滤波器;4.利用MATLAB程序进行图像锐化(要求:不得调用Matlab自带的图像函数,但可以调用其它数学函数),观察图像锐化的效果。

二、实验内容:1.读入一幅灰度图像2.分别利用Roberts、Prewitt 和Sobel 边缘检测算子,对一幅灰度数字图像(cameraman.tif)进行边缘检测,显示处理前图像和检测的边缘图3.根据获得的梯度图,分别采用5种锐化输出处理方式,显示锐化输出前后的图像三、实验要求:1.用Matlab语言进行编程,实现上述功能,并尽量使得程序具有通用性,3种算子3个.m文件。

2.撰写实验报告并附上所用程序和结果。

四、实验代码及实验结果1.roberts算子clear;clc;I=imread('cameraman.tif');[x,y]=size(I);J=double(I);for i=1:x-1%注意i的范围是1到x-1而不是到xfor j=1:y-1a=J(i+1,j+1)-J(i,j);b=J(i+1,j)-J(i,j+1);J1(i,j)=abs(a)+abs(b);%直接以梯度值代替%辅以门槛判断if abs(a)+abs(b) >150J2(i,j)=J1(i,j);elseJ2(i,j)=I(i,j);end%给边缘规定一个特定的灰度级if abs(a)+abs(b) >150J3(i,j)=255;elseJ3(i,j)=I(i,j);end%给背景规定特定的灰度级if abs(a)+abs(b) >150J4(i,j)=J1(i,j);elseJ4(i,j)=0;end%二值图像if abs(a)+abs(b) >100J5(i,j)=255;elseJ5(i,j)=0;endendendJ1=uint8(J1);J2=uint8(J2);subplot(2,3,1);imshow(I);title('原图');subplot(2,3,2);imshow(J1);title('roberts算子1');subplot(2,3,3);imshow(J2);title('roberts算子2');subplot(2,3,4);imshow(J3);title('roberts算子3');subplot(2,3,5);imshow(J4);title('roberts算子4');subplot(2,3,6);imshow(J5);title('roberts算子5');2.prewitt算子clear;clc;I=imread('cameraman.tif');[m,n]=size(I);J=double(I);for x=2:m-1for y=2:n-1a=J(x+1,y-1)-J(x-1,y-1)+J(x+1,y)-J(x-1,y)+J(x+1,y+1)-J(x-1,y+1); b=J(x-1,y+1)-J(x-1,y-1)+J(x,y+1)-J(x,y-1)+J(x+1,y+1)-J(x+1,y-1); J1(x,y)=abs(a)+abs(b);if abs(a)+abs(b) >160J2(x,y)=J1(x,y);elseJ2(x,y)=I(x,y);endif abs(a)+abs(b) >160J3(x,y)=255;elseJ3(x,y)=I(x,y);endif abs(a)+abs(b) >160J4(x,y)=J1(x,y);elseJ4(x,y)=0;endif abs(a)+abs(b) >160J5(x,y)=255;elseJ5(x,y)=0;endendendJ1=uint8(J1);J2=uint8(J2);subplot(2,3,1);imshow(I);title('原图');subplot(2,3,2);imshow(J1);title('prewitt算子1');subplot(2,3,3);imshow(J2);title('prewitt算子2');subplot(2,3,4);imshow(J3);title('prewitt算子3');subplot(2,3,5);imshow(J4);title('prewitt算子4');subplot(2,3,6);imshow(J5);title('prewitt算子5');3sobel算子clear;clc;I=imread('cameraman.tif');[m,n]=size(I);J=double(I);for x=2:m-1for y=2:n-1a=J(x+1,y-1)-J(x-1,y-1)+2*J(x+1,y)-2*J(x-1,y)+J(x+1,y+1)-J(x-1,y+1); b=J(x-1,y+1)-J(x-1,y-1)+2*J(x,y+1)-2*J(x,y-1)+J(x+1,y+1)-J(x+1,y-1);J1(x,y)=abs(a)+abs(b);if abs(a)+abs(b) >160J2(x,y)=J1(x,y);elseJ2(x,y)=I(x,y);endif abs(a)+abs(b) >160J3(x,y)=255;elseJ3(x,y)=I(x,y);endif abs(a)+abs(b) >160J4(x,y)=J1(x,y);elseJ4(x,y)=0;endif abs(a)+abs(b) >160J5(x,y)=255;elseJ5(x,y)=0;endendendJ1=uint8(J1);J2=uint8(J2);J3=uint8(J3);J4=uint8(J4);J5=uint8(J5);subplot(2,3,1);imshow(I);title('原图');subplot(2,3,2);imshow(J1);title('sobel算子1');subplot(2,3,3);imshow(J2);title('sobel算子2');subplot(2,3,4);imshow(J3);title('sobel算子3');subplot(2,3,5);imshow(J4);title('sobel算子4');subplot(2,3,6);imshow(J5);title('sobel算子5');图像空域变化背景图像经转换或传输,质量可能下降,难免有些模糊图像锐化目的:加强图像轮廓,使图像看起来比较清晰平滑与锐化1、高频分量对应图像中的区域边缘或噪声;2、低频分量对应图像中灰度值缓慢变化的区域;3、平滑减弱或消除图像中的高频分量,平滑图像,消除噪声;4、锐化减弱或消除图像中的低频分量,增加图像的反差,突出边缘。

实验五 图象锐化和傅立叶变换

实验五 图象锐化和傅立叶变换

数字图像处理实验报告实验五图象锐化和傅立叶变换实验目的:通过实验掌握图像锐化的基本概念和方法掌握二维傅里叶变换的基本概念和实现方法实验内容:一、掌握锐化空间滤波的概念和方法二、掌握傅里叶变换和其反变换的基本概念实验代码:一.锐化空间滤波L=imread('fengjing.jpg');I=rgb2gray(L);J=double(I);H1=fspecial('sobel');TH1=imfilter(J,H1);H2=fspecial('prewitt');TH2=imfilter(J,H2);J(J<=128)=0;J(J>128&J<=256)=1;BW2=bwmorph(I,'remove');subplot(2,3,1); imshow(I);title('原图');subplot(2,3,2); imshow(TH1);title('sobel图');subplot(2,3,3); imshow(TH2);title('prewitt图');subplot(2,3,4); imshow(I);title('原图');subplot(2,3,5); imshow(J);title('二值化');subplot(2,3,6); imshow(BW2);title('bwmorph');二,傅立叶变换和逆变换L=imread('fengjing.jpg');I=rgb2gray(L);J=double(I);BW2=edge(I,'canny');K=fft2(J);%傅里叶变换M=fftshift(K);%直流分量移到频谱中心N=abs(M);%计算频谱幅值P=(N-min(min(N)))/(max(max(N))-min(min(N)))*225;%归一化Q=ifftshift(M); %傅立叶逆变换R=ifft2(Q);S=real(R);subplot(2,3,1.5); imshow(I);title('原图');subplot(2,3,2.5); imshow(BW2);title('edge图');subplot(2,3,4); imshow(I);title('原图');subplot(2,3,5); imshow(P);title('傅里叶变换频谱');subplot(2,3,6);imshow(uint8(S));title('傅里叶逆变换');'。

数字图像处理实验报告灰度修正和锐化技术

数字图像处理实验报告灰度修正和锐化技术

灰度修正和锐化技术摘要1.灰度变换:选择一副对比度不足的图像,对该图进行灰度变换,增强对比度,显示增强前、后的图像以及他们的灰度直方图。

2.直方图均衡:选择一副灰度直方图不均匀的图像,对该图像做直方图均衡处理,显示处理前后的图像以及他们的灰度直方图。

3.选择一副边缘较模糊的图像,利用高通滤波器对此图像边缘增强,观察增强的效果。

正文1.灰度变换可以增大图像的动态范围,扩大图像的对比度,使图像特征变得明显。

灰度变换包括灰度的线性变换和非线性变换。

增强前增强后10020005000100000100200510x 1042.直方图均衡化是通过对原图像进行某种灰度变换,是变换后图像的直方图能均匀分布,这样就能使原图像中具有相近灰度且占有大量像素点的区域之灰度范围展宽,使大区域中的微小灰度变化显现出来,使图像更清晰。

原图像01002000.511.522.53x 104原图像直方图均衡化后的图像01002000.511.522.53x 104均衡化后的直方图3.图像锐化就是希望增强图像中的边缘(细节)信息,及对边缘信息进行增强。

频域中的锐化技术可以采用高通提升滤波法。

即让低频通过,而将高频提升,以达到增强图像中高频信息的目的,实现图像的锐化。

原图像IHPF D0=15IHPF D0=30IHPF D0=50附录程序1. >> A=imread('E:\龙猫\123.jpg'); >> y1=rgb2gray(A);>> B=imadjust(y1,[0.35 0.65],[]); >>figure(1)>> subplot(2,2,1);imshow(y1); >> title('增强前')>> subplot(2,2,2);imhist(y1);>> subplot(2,2,3);imshow(B);>> title('增强后')>> subplot(2,2,4);imhist(B);2. >> x=imread('d:\shu.jpg');>> y1=rgb2gray(x);>> subplot(1,2,1);>> imshow(y1)>> title('原图像');>> subplot(1,2,2);>> imhist(y1) %原图像直方图>> title('原图像直方图');>> y2=histeq(y1);>> figure(2)>> subplot(1,2,1);>> imshow(y2)>> title('均衡化后的图像');>> subplot(1,2,2);>> imhist(y2) %均衡化后的直方图>> title('均衡化后的直方图'); 3. I=imread('testpat1.png');J=double(I);%分别设置3种不同的滤波半径D1=15;D2=30;D3=50;%傅里叶变换并中心化Fuv=fftshift(fft2(J));[M,N]=size(Fuv);%确定傅里叶变换的原点xo=floor(M/2);yo=floor(N/2);%分别求IHPFfor i=1:Mfor j=1:ND=sqrt((i-xo)^2+(j-yo)^2);if(D>=D1)h1(i,j)=1;elseh1(i,j)=0;endif(D>=D2)h2(i,j)=1;elseh2(i,j)=0;endif(D>=D3)h3(i,j)=1;elseh3(i,j)=0;endendend%滤波矩阵点乘Guv1=h1.*Fuv;Guv2=h2.*Fuv;Guv3=h3.*Fuv;%傅里叶逆变换g1=ifftshift(Guv1);g1=uint8(real(ifft2(g1)));g2=ifftshift(Guv2);g2=uint8(real(ifft2(g2)));g3=ifftshift(Guv3);g3=uint8(real(ifft2(g3)));%分别显示各个图像subplot(2,2,1);imshow(I);title('原图像') subplot(2,2,2);imshow(g1);title('IHPF D0=15'); subplot(2,2,3);imshow(g2);title('IHPF D0=30'); subplot(2,2,4);imshow(g3);title('IHPF D0=50');。

图像锐化实验报告

图像锐化实验报告

实验报告实验题目:图像锐化实验实验目的:掌握图像锐化算法的基本原理 实验要求:利用matlab 来实现图像的锐化 实验原理或内容:1. 图像锐化的基本原理图像在传输和转换过程中,一般来讲,质量都要降低,除了噪声的因素之外,图像一般都要变得模糊一些。

这主要因为图像的传输或转换系统的传递函数对高频成分的衰减作用,造成图像的细节轮廓不清晰。

图像锐化的作用就是补偿图像的轮廓,使图像较清晰。

与图像平滑处理相对应,图像锐化也可分为空间域图像锐化法和空间频率域图像锐化法两大类型。

本实验主要用到空域高通滤波—微分法图像锐化 微分法图像锐化在图像锐化中,最常用的微分法采用梯度的概念来实现。

设有一幅图像f (x ,y ),它的梯度采用数学概念描述,是一个向量,定义为Ty f xf y x f G ⎥⎦⎤⎢⎣⎡∂∂∂∂=)],([ 该梯度向量的模为2/122)],([⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛∂∂+⎪⎭⎫ ⎝⎛∂∂=y f x f y x f G (4-1)数字图像处理中,把(4-36)式所表示的值,)],([y x f G 称为图像f (x ,y )的梯度,它是x ,y 的函数,因而实际上是图像f (x ,y )的梯度图像。

对于数字图像f (x ,y )来讲,微分∂f/∂x 和∂f/∂y 只能用差分来近似。

(4-1)式按差分运算近似以后的梯度表达式为|G [f (x ,y )]|={[f (x ,y )-f (x +1,y )]2十[f (x ,y )-f (x ,y +1)] 2}1/2(4-2)另一种常用的梯度称为Roberts 梯度,定义为|G [f (x ,y )]|={[f (x ,y )-f (x +1,y+1)]2十[f (x+1,y )-f (x ,y +1)] 2}1/2(4—3)利用(4—37)和(4-38)式计算梯度时,计算量较大,为节省计算机计算时间,在计算精度允许的情况,可采用绝对差算法。

实验报告四图像锐化处理

实验报告四图像锐化处理

实验报告四图像锐化处理实验报告四姓名:学号:班级:实验日期: 2016.5.10 实验成绩:一.实验目的(1)学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子、Sobel算子设计,使图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。

(2)分析模板大小对空域锐化滤波的影响,比较不同滤波器的处理效果,分析其优缺点。

二.实验原理锐化处理的主要目的是突出灰度的过度部分,在空间域中,均值滤波类似于积分,那锐化滤波类似于微分,微分算子的响应程度与图像在用算子操作的这一点突变程度成正比,图像积分模糊了图像,同时起到了消除噪声的作用;图像微分增强边缘和其它突变(如噪声),而削弱灰度变换缓慢的区域,laplacian算子类似于二阶微分,强调的是图像灰度级剧烈变换的部分,而sobel算子类似于一阶微分,强调的是图像灰度级缓慢变化的部分。

三.实验内容及结果(1)选择一副图像i_texture2.bmp,分别使用拉普拉斯算子、sobel 算子对图像进行锐化滤波,并观察滤波效果。

图 1 laplacian及sobel算子处理图像(2)选择一副图像i_texture2.bmp,构造一个中心系数为-24的5×5的类似于拉普拉斯模板对图像进行锐化,与上述拉普拉斯算子的结果相比,是否能得到更加清晰的结果?图 2 不同大小laplacian模板处理原图及二值图四.结果分析(1)观察图一,可以发现对原图进行sobel算子运算后,原图阶梯的边缘细节被突显出来了,而每个阶梯灰度级保持不变的背景则没了,全变黑了,而对原图进行laplacian算子运算后,边缘部分则只剩下些杂乱无章的点了,基本是在sobel算子运算过后筛选出来的缓慢突变边缘上的一些突变更快的点。

如果把sobel算子比作是一阶微分就不难理解它是对原图的缓慢边缘变化部分,而把laplacian算子比作是二阶微分的话,就是原图的剧烈突变部分,由于原图像的阶梯边缘在灰度级上是缓慢过度的,所以使用sobel算子边缘的突出效果更明显,而laplacian算子无论模板大小为多大,都不能清晰的显示出边缘。

实验三图像的平滑与锐化

实验三图像的平滑与锐化

实验三 图像的平滑与锐化一.实验目的1.掌握图像滤波的基本定义及目的;2.理解空域滤波的基本原理及方法;3.掌握进行图像的空域滤波的方法。

二.实验基本原理图像噪声从统计特性可分为平稳噪声和非平稳噪声两种。

统计特性不随时间变化的噪声称为平稳噪声;统计特性随时间变化的噪声称为非平稳噪声。

另外,按噪声和信号之间的关系可分为加性噪声和乘性噪声。

假定信号为S (t ),噪声为n (t ),如果混合叠加波形是S (t )+n (t )形式,则称其为加性噪声;如果叠加波形为S (t )[1+n (t )]形式, 则称其为乘性噪声。

为了分析处理方便,往往将乘性噪声近似认为加性噪声,而且总是假定信号和噪声是互相独立的。

1.均值滤波均值滤波是在空间域对图像进行平滑处理的一种方法,易于实现,效果也挺好。

设噪声η(m,n)是加性噪声,其均值为0,方差(噪声功率)为2σ,而且噪声与图像f(m,n)不相关。

除了对噪声有上述假定之外,该算法还基于这样一种假设:图像是由许多灰度值相近的小块组成。

这个假设大体上反映了许多图像的结构特征。

∑∈=s j i j i f M y x g ),(),(1),( (3-1)式(2-1)表达的算法是由某像素领域内各点灰度值的平均值来代替该像素原来的灰度值。

可用模块反映领域平均算法的特征。

对模板沿水平和垂直两个方向逐点移动,相当于用这样一个模块与图像进行卷积运算,从而平滑了整幅图像。

模版内各系数和为1,用这样的模板处理常数图像时,图像没有变化;对一般图像处理后,整幅图像灰度的平均值可不变。

(a) 原始图像 (b) 邻域平均后的结果图3-1 图像的领域平均法2.中值滤波中值滤波是一种非线性处理技术,能抑制图像中的噪声。

它是基于图像的这样一种特性:噪声往往以孤立的点的形式出现,这些点对应的象素很少,而图像则是由像素数较多、面积较大的小块构成。

在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。

图像锐化

图像锐化

《数字图像处理》实验报告1、实验内容(本次实现的功能和实验原理)编程实现给定图像的sobel锐化。

2、代码说明(并非简单的代码拷贝,要按照实验原理对代码中的关键变量和结构进行解释)// 输入模板数组维数定义,#define column 3#define length 3//水平和垂直锐化的模板定义int p1[length][column]={-1,-2,-1,0,0,0,1,2,1};int p2[length][column]={-1,0,1,-2,0,2,-1,0,1};//函数定义部分int ab(int c){// 却绝对值,并且在数值大于255时,修改值为255if(c<0) c=-c;if(c>255) c=255;return c;}// sobel 锐化函数/* 输入参数:RGBQUAD* dataOfBmp_src --- 原图像所有像素(以行为序)对应的RGBAlpha 四元素结构体指针;RGBQUAD* dataOfBmp_dst --- 反色后的图像所有像素(以行为序)对应的RGBAlpha 四元素结构体指针;DWORD width, DWORD height --- 原图像和输出图像的宽度和高度(以像素为单位)height,int a[][column],int b[][column],-----水平锐化和垂直锐化的模板参量int m,int n-----------模板维数高和宽输出值:没有*/void sobelruihua(tagRGBQUAD** dataOfBmp_src, tagRGBQUAD** dataOfBmp_dst, DWORD width, DWORD height,int a[][column],int b[][column],int m,int n){int i,j;int sumR=0, sumG=0, sumB=0,sumR1=0, sumG1=0, sumB1=0;// 像素复制,以使边界保留for( i=0;i<height;i++){ for( j=0;j<width;j++){dataOfBmp_dst[i][j].rgbRed = dataOfBmp_src[i][j].rgbRed;dataOfBmp_dst[i][j].rgbGreen = dataOfBmp_src[i][j].rgbGreen;dataOfBmp_dst[i][j].rgbBlue = dataOfBmp_src[i][j].rgbBlue;}}//对模板内像素分别以水平和垂直方向的模板进行求和for( i=m/2;i<height-m/2;i++)for( j=n/2;j<width-n/2;j++){sumR=0, sumG=0, sumB=0,sumR1=0, sumG1=0, sumB1=0;for(int k1=-m/2; k1<=m/2; k1++){for(int k2=-n/2; k2<=n/2; k2++){sumR+=dataOfBmp_src[i+k1][j+k2].rgbRed*a[k1+m/2][k2+n/2];sumG+=dataOfBmp_src[i+k1][j+k2].rgbGreen*a[k1+m/2][k2+n/2];sumB+=dataOfBmp_src[i+k1][j+k2].rgbBlue*a[k1+m/2][k2+n/2];sumR1+=dataOfBmp_src[i+k1][j+k2].rgbRed*b[k1+m/2][k2+n/2];sumG1+=dataOfBmp_src[i+k1][j+k2].rgbGreen*b[k1+m/2][k2+n/2];sumB1+=dataOfBmp_src[i+k1][j+k2].rgbBlue*b[k1+m/2][k2+n/2];}}//利用sobel算法将模板求得的结果赋值给R,G,BdataOfBmp_dst[i][j].rgbRed=(int)ab(sqrt(sumR*sumR+sumR1*sumR1));dataOfBmp_dst[i][j].rgbGreen=(int)ab(sqrt(sumG*sumG+sumG1*sumG1));dataOfBmp_dst[i][j].rgbBlue=(int)ab(sqrt(sumB*sumB+sumB1*sumB1));}}4、实验结果分析:要求有实验结果图像和对应原始图像,并用文字按照实验内容针对不同图像进行相关分析说明4.1 滤波次数队滤波效果的影响(1)锐化前图像为(2)锐化后图像为(2)反色后图像为5、存在的问题和不足:程序中存在的问题和不足,算法的问题和不足。

数字图像处理--图像的锐化处理实验报告

数字图像处理--图像的锐化处理实验报告

江 西 理 工 大 学江 西 理 工 大 学 实 验 报 告 纸第 1 页/共 2页一、实验目的了解图像增强中的模板锐化法;要求先选择两幅图像,对其进行a=1和a=2的锐化处理,实现教材中图4.4.2的效果;再选择一幅图像,验证教材中提出的锐化实质,实现教材中图4.4.3的效果,并对实验结果进行分析。

二、实验内容1、选择两幅图像,对其进行a=1和a=2的锐化处理,实现教材中图4.4.2的效果,并分析实验结果。

2、选择一幅图像,验证教材中提出的锐化实质,实现教材中图4.4.3的效果,并分析实验结果。

三、实验步骤和设计思想设计思想:在matlab 环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

f11=imread('lena1.bmp');f21=imread('442.bmp');%读取图像subplot(2,3,1);imshow(f11) %输出图像 title('原图') %在原始图像中加标题 a=1; %当a=1时w1=[0 -a 0;-a 1+4*a -a;0 -a 0]; %设置w1J1= imfilter(f11,w1,'symmetric','conv'); %进行锐化处理 f12=uint8(J1); %数据类型转换 subplot(2,3,2);imshow(f12); %显示锐化后的图像 title('a=1'); 实验步骤:1. 启动matlab 双击桌面matlab 图标启动matlab 环境;2. 在matlab 命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab 自带的图像,如: lena1.bmp 、lena1.bmp 图像;再调用相应的锐化函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4运行,观察显示结果; 5结束运行,退出;四、程序清单任务一源代码: clc close clear allf11=imread('lena1.bmp'); f21=imread('442.bmp'); figure(1);subplot(2,3,1); imshow(f11); title('原图'); subplot(2,3,4); imshow(f21); a=1;w1=[0 -a 0;-a 1+4*a -a;0 -a 0];J1= imfilter(f11,w1,'symmetric','conv'); f12=uint8(J1); subplot(2,3,2); imshow(f12); title('a=1'); a=2;w2=[0 -a 0;-a 1+4*a -a;0 -a 0];J1= imfilter(f11,w2,'symmetric','conv'); f13=uint8(J1); subplot(2,3,3); imshow(f13); title('a=2');数字图像处理 实验报告姓名: 江 西 理 工 大 学 实 验 报 告 纸第 2 页/共 2页J1=imfilter(f21,w1,'symmetric','conv'); f22=uint8(J1); subplot(2,3,5); imshow(f22);J1=imfilter(f21,w2,'symmetric','conv'); f23=uint8(J1); subplot(2,3,6); imshow(f23);任务二源代码: clc close clear allf1=imread('lena1.bmp'); figure(1);subplot(1,3,1); imshow(f1); title('原图'); a=2;w=[0 -a 0;-a 4*a -a;0 -a 0];J= imfilter(f1,w,'symmetric','conv'); f12=uint8(J); subplot(1,3,2); imshow(f12); title('加重边缘');w1=[0 -a 0;-a 1+4*a -a;0 -a 0];J= imfilter(f1,w1,'symmetric','conv'); f12=uint8(J); subplot(1,3,3); imshow(f12); title('锐化结果');五、实验调试记录六、实验结果及其分析任务一结果:任务二结果:七、实验心得通过这次我对图像锐化法有了进一步了解,对图像处理中锐化的效果进一步掌握,对于以后的学习有很大的帮助。

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

数字图像处理(2015年春季学期) Array实验报告
系别:计算机科学与技术
班级:计算机12-1
姓名:依力夏提江·艾买尔
学号:12101020129
实验名称:图像锐化
L1.bmp:
二、实验步骤
1.准备相关图像文件。

2.在Win 7操作系统上,打开Microsoft Visual Studio 2005,编写相关程序,完成程序主体框架结构。

3.编写图像锐化的彩色图像灰度化,Sobel算法锐化,图像二值化处理相关的程序代码。

4.对程序进行相关调试,修改程序,去除其中的BUG。

5. 利用自己准备的图像的文件和编写的程序,进行图像锐化处理。

6.截屏,保留实验结果,进行实验结果分析,并撰写实验报告。

四、编译与执行过程截图
(下面是一个例子,换上你自己的图)
六、实验结果与分析
(下面是一个例子,换上你自己的图)图像锐化:
源图:
灰度化:
再经过Sobel算法锐化:
再经过二值化后:
实验结果分析:
如上几个图像所示,之所以可以从人物、背景中提取出轮廓,是因为轮廓部分的信息较强,因此,如果设定一个阀值,当图中小雨阀值的点(即灰度图中灰度变化较弱的点,被认为是非边界点)置为黑,将图中大于阀值的点置为白,则可得到上图,这就把人物的边缘信息提取出来了。

在本实验的图像锐化过程中,所采用的公式为:
Sobel边缘检测算法
索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。

在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量
Sobel卷积因子为:
该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。

如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:
具体计算如下:
Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)
+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)
+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)
= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]
Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)
+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)
+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)
= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]
其中f(a,b), 表示图像(a,b)点的灰度值;
图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:
七、主要相关程序源代码
7.1 彩色图像灰度化
void CBMPEdit::Gray()
{
pImageData = (byte *)GlobalLock(m_hgImageData);
lWidth = m_BmpInfo.bmiHeader.biWidth;
lHeight = m_BmpInfo.bmiHeader.biHeight;
for ( int j = 0 ; j < lHeight ; j++)
{
for( int i = 0 ; i < lWidth ; i++)
{
//灰度化临时值
temp = double(*(pImageData + j * nBytePerLine + i * 3 + 0))*0.299 +
double(*(pImageData + j * nBytePerLine + i * 3 + 1))*0.587 +
double(*(pImageData + j * nBytePerLine + i * 3 + 2))*0.114;
//三通道图转到单通道
*(pImageData + j * nBytePerLine + i * 3 + 0)=int(temp);
*(pImageData + j * nBytePerLine + i * 3 + 1)=int(temp);
*(pImageData + j * nBytePerLine + i * 3 + 2)=int(temp);
}
}
GlobalUnlock(m_hgImageData);
}
7.2 Sobel锐化
int CBMPEdit:: Sharpening()
{
lWidth = m_BmpInfo.bmiHeader.biWidth;
lHeight = m_BmpInfo.bmiHeader.biHeight;
(注:文档可能无法思考全面,请浏览后下载,供参考。

可复制、编制,期待你的好评与关注)。

相关文档
最新文档