V C++数字图像处理.docx
- 文档编号:2776120
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:19
- 大小:129.46KB
V C++数字图像处理.docx
《V C++数字图像处理.docx》由会员分享,可在线阅读,更多相关《V C++数字图像处理.docx(19页珍藏版)》请在冰豆网上搜索。
VC++数字图像处理
VC++数字图像处理
BMP位图文件的4个组成部分
Bmp位图文件大体上分成四个部分。
位图文件头BITMAPFILEHEADER、位图信息头BITMAPINFOHEADER、
调色板Palette、实际的位图数据ImageDate
第1部分为位图文件头BITMAPFILEHEADER,是一个结构体类型,该结构的长度是固定的,为14个字节。
第2部分为位图信息头BITMAPINFOHEADER,也是一个结构体类型的数据结构,该结构的长度也是固定的,为40个字节(WORD为无符号16位整数,DWORD为无符号32位整数,LONG为32位整数)。
第3部分为颜色表。
颜色表实际上是一个RGBQUAD结构的数组,数组的长度由biClrUsed指定(如果该值为零,则由biBitCount指定,即2的biBitCount次幂个元素)。
RGBQUAD结构是一个结构体类型,占4个字节
第4部分是位图数据,即图像数据,其紧跟在位图文件头、位图信息头和颜色表(如果有颜色表的话)之后,记录了图像的每一个像素值。
对于有颜色表的位图,位图数据就是该像素颜色在调色板中的索引值;对于真彩色图,位图数据就是实际的R、G、B值(三个分量的存储顺序是B、G、R)。
需要注意两点:
第一,Windows规定一个扫描行所占的字节数必须是4的倍数,不足4的倍数则要对其进行扩充。
假设图像的宽为biWidth个像素、每像素biBitCount个比特,其一个扫描行所占的真实字节数的计算公式如下:
DataSizePerLine=(biWidth*biBitCount/8+3)/4*4
那么,不压缩情况下位图数据的大小(BITMAPINFOHEADER结构中的biSizeImage成员)计算如下:
biSizeImage=DataSizePerLine*biHeight
第二,一般来说,BMP文件的数据是从图像的左下角开始逐行扫描图像的,即从下到上、从左到右,将图像的像素值一一记录下来,因此图像坐标零点在图像左下角。
二值化处理:
像素灰度值>128的为白色值255,否则为黑色值0。
第三章图像增强
对比度:
通俗地讲,就是亮暗的对比程度。
对比度通常表现了图像画质的清晰程度。
一般情况下,在各类图像系统中图像的传送和转换(如成像,复制,扫描,传输以及显示等)总是要造成图像的某些降质。
例如,摄像时,由于光学系统失真,相对运动,大气湍流等都会使图像模糊。
再如传输过程中,噪声污染图像,使人观察起来不满意,或者使及其从中提取的信息减少甚至造成错误。
因此,必须对降质图像进行改善处理。
改善的办法有两类:
一类是不考虑图像降质的原因,只将图像中感兴趣的特征有选择的突出,而衰减其不需要的特征,故改善后的图像不一定要去逼近原图像。
如突出目标轮廓,衰减各类噪声,将黑白图像转变为彩色图像等等。
这一类图像改善方法统称为图像增强技术。
从图像质量评价观点来看,图像增强技术主要目的是提高图像的可懂度。
另一类改善方法是针对图像降质原因,设法去补偿降质因素,从而使改善后的图像尽可能地逼近原始图像。
这类改善方法统称为图像复原技术。
显然,图像复原技术主要目的使提高图像质量的逼真度。
图像增强技术有两类方法:
空间域法和频率域法。
空间域中的方法主要使在空间域那对图像象素灰度值直接运算处理。
例如:
将包含某点的一个小区域那各点灰度值进行平均运算,用所得平均值来代替该点的灰度值。
这就是所谓平滑处理。
二、灰度变换增强
空间域图像处理可以表示为:
g(x,y)=T[f(x,y)]
其中,f(x,y)表示增强之前的图像,g(x,y)表示增强处理之后的图像,T是对f的一种变换,其定义在(x,y)的邻域上。
如果T定义在每个(x,y)点上,则T称为点操作;如果T定义在(x,y)的某个邻域上,则T称为模板操作
1、灰度n倍增强
基本原理:
当图像的灰度值比较集中在灰度区域的低端时,可以把图像像素的灰度值都扩大n倍。
即g(x,y)=n*f(x,y)
在原始图像位置(x,y)处的像素灰度值f(x,y)乘以n后,图像位置(x,y)处的像素灰度值就变为g(x,y)。
当结果大于255时,按255计算。
5、线性灰度增强
对比度展宽的目的是:
通过将亮暗差异(即对比度)扩大,来把人所关心的部分强调出来。
原理是,进行像素点对点的,灰度级的线性映射。
该映射关系通过调整参数,来实现对亮暗差异的扩大。
实现方法:
设原图、处理后的结果图的灰度值分别为[f(i,j)]和[g(i,j)];
要求[g(i,j)]和[f(i,j)]均在[0,255]间变化,但是g的表现效果要优于f。
因为f和g的取值范围相同,所以通过抑制不重要的部分,来扩展所关心部分的对比度。
为了达到上面所提出的目的,原图(横轴上的f(i,j))与处理后图(纵轴上的g(i,j))的灰度影射关系可用下图表示。
7、直方图均衡化——基本原理
直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。
从而达到清晰图像的目的。
因为灰度分布可在直方图中描述,所以该图像增强方法是基于图像的灰度直方图.
1).求直方图
设f、g分别为原图像和处理后的图像。
求出原图f的灰度直方图,设为h。
显然,在[0,255]范围内量化时,h是一个256维的向量。
例:
13998
注:
这里为了描述方便起见,设灰度级的分布范围为[0,9]。
2.计算原图的灰度分布概率
(1)求出图像f的总体像素个数
Nf=m*n(m,n分别为图像的长和宽)
(2)计算每个灰度级的分布概率,即每个像素在整个图像中所占的比例。
hs(i)=h(i)/Nf(i=0,1,…,255)
hs=h/25
=[0.12,0.08,0.16,0.16,0.04,0.04,0.16,0.04,0.08,0.12]
灰度级0123456789
第四章:
图像平滑出处理
图像平滑主要目的是减少噪声。
图像平滑过程总是要付出一定的细节模糊代价。
均值滤波器——原理
平滑处理的图像中的每个像素的灰度值由包含在(x,y)的预定邻域中的几个像素的灰度平均值来决定。
在图像上,对待处理的像素给定一个模板,该模板包括了其周围的邻近像素。
将模板中的全体像素的均值来替代原来的像素值的方法。
均值滤波器——处理方法
以模块运算系数表示即:
均值滤波器的改进——加权均值滤波
∙均值滤波器的缺点是,会使图像变的模糊,原因是它对所有的点都是同等对待。
∙为了改善效果,就可采用加权平均的方式来构造滤波器。
一般认为距离模板中心像素近的像素对平滑结果影响较大,所以接近中心的系数应较大,模板边界附近的系数应较小。
中值滤波器——问题的提出
∙虽然均值滤波器对噪声有抑制作用,但同时会使图像变得模糊。
即使是加权均值滤波,改善的效果也是有限的。
∙为了有效地改善这一状况,必须改换滤波器的设计思路,中值滤波就是一种有效的方法。
——设计思想
因为噪声(如椒盐噪声)的出现,使该点像素比周围的像素亮(暗)许多。
如果在某个模板中,对像素进行由小到大排列的重新排列,那么最亮的或者是最暗的点一定被排在两侧。
取模板中排在中间位置上的像素的灰度值替代待处理像素的值,就可以达到滤除噪声的目的.
——滤波处理方法
∙与均值滤波类似,做3*3的模板,对9个数排序,取第5个数替代原来的像素值。
比较:
均值滤波:
适合处理高斯噪声(随机噪声)
中值滤波:
适合处理椒盐噪声(黑白亮点)
第五章:
图像锐化处理
图像锐化的概念
补偿图像轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。
∙图像锐化的目的是加强图像中景物的细节边缘和轮廓。
∙锐化的作用是使灰度反差增强。
∙因为边缘和轮廓都位于灰度突变的地方。
所以锐化算法的实现是基于微分作用。
图像锐化方法
∙图像的景物细节特征;
∙一阶微分锐化方法;
∙二阶锐化微分方法;
∙一阶、二阶微分锐化方法效果比较。
1、一阶微分锐化——基本原理
(1)单方向的一阶锐化——基本原理
∙单方向的一阶锐化是指对某个特定方向上的边缘信息进行增强。
∙因为图像为水平、垂直两个方向组成,所以,所谓的单方向锐化实际上是包括水平方向与垂直方向上的锐化。
水平方向的一阶锐化---基本方法
∙水平方向的锐化非常简单,通过一个可以检测出水平方向上的像素值的变化模板来实现。
(2)垂直方向的一阶锐化
——基本方法
∙垂直锐化算法的设计思想与水平锐化算法相同,通过一个可以检测出垂直方向上的像素值的变化模板来实现。
方法2:
将所有的像素值取绝对值。
这样做的结果是,可以获得对边缘的有方向提取。
(3)无方向一阶锐化——问题的提出
(4)辅以门限判断
(5)给边缘规定一个特定的灰度级
(6)根据梯度二值化图像
2、边缘检测
边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。
大多数是基于方向导数模板求卷积的方法。
将所有的边缘模板逐一作用于图像中的每一个像素,产生最大输出值的边缘模板方向,表示该点边缘的方向,如果所有方向上的边缘模板接近于零,该点处没有边缘;如果所有方向上的边缘模板输出值都近似相等,没有可靠边缘方向。
卷积
卷积可以简单的看成加权求和的过程。
(1)无方向一阶锐化---交叉微分
特点:
锐化的边缘信息较强
(3)无方向一阶锐化——Priwitt锐化算法
特点:
与Sobel相比,有一定的抗干扰性。
图像效果比较干净。
几种方法的效果比较
∙Sobel算法与Priwitt算法的思路相同,属于同一类型,因此处理效果基本相同。
∙Roberts算法的模板为2*2,提取出的信息较弱。
∙单方向锐化经过后处理之后,也可以对边界进行增强。
(4)二阶微分锐化——问题的提出
Laplacian算子:
为了改善锐化效果,可以脱离微分的计算原理,在原有的算子基础上,对模板系数进行改变,获得Laplacian变形算子如下所示。
算法特点:
Wallis算法考虑了人眼视觉特性,因此,与Laplacian等其他算法相比,可以对暗区的细节进行比较好的锐化。
一阶与二阶微分的边缘提取效果比较
∙以Sobel及Laplacian算法为例进行比较。
∙Sobel算子获得的边界是比较粗略的边界,反映的边界信息较少,但是所反映的边界比较清晰;
∙Laplacian算子获得的边界是比较细致的边界。
反映的边界信息包括了许多的细节信息,但是所反映的边界不是太清晰。
第六章:
图像分割
图像分割的目的——理解图像的内容,提取出我们感兴趣的对象。
图像分割按照具体应用的要求和具体图像的内容将图像分割成一块块区域。
图像分割是模式识别和图像分析的预处理阶段。
图像分割的方法——通常采用聚类方法,假设图像中组成我们所感兴趣对象的像素具有一些相似的特征,如相同的灰度值、相同的颜色等。
图像分割技术——基于区域的分割技术;
一、基于边界的分割技术。
1、轮廓的提取
∙轮廓提取算法去:
如果源图中一点为黑,且它的8邻域点都是黑时,此点是内部点,则删除该点。
因此,该算法实际是对图像的各个像素点进行扫描(这里可以只考虑二值图像),对图像中的每个黑点,考察其8邻域,如果所有点为黑,证明该点为物体的内部点,可以去除,否则保留。
2、轮廓跟踪
∙假定图像为二值图像,背景为白色,目标位黑色。
首先确定起始边界点,由于图像按从左向右,从下向上顺序读取,因此从左下方开始顺序搜索到的第一个黑点A0为起始边界点,A0是具有最小行和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+数字图像处理 C+ 数字图像 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)