数字图像直方图

合集下载

数字图像处理作业第三次直方图处理

数字图像处理作业第三次直方图处理

数字图像处理作业(第三次)直方图处理第一题第二题(例3.6)1. 问题:1)编写函数Y=MyHisteq(X), 对灰度图象X进行直方图均衡化,得到均衡化后的图像Y,假设X的数据类型为uint8。

2)利用自己编写的直方图均衡化函数,重现例3.6中的实验,即对图3.16中的图像进行直方图均衡化。

2.程序:(1) 函数程序:function Y = MyHisteq(X)%对灰度图象X进行直方图均衡化,得到均衡化后的图像Y[m,n]=size(X);A=zeros(1,256);for k=0:255A(k+1)=length(find(X==k))/(m*n);endS1=zeros(1,256);for i=1:256for j=1:iS1(i)=A(j)+S1(i); %算SkendendS2=round(S1*256);for i=1:256B(i)=sum(A(find(S2==i)));endfigure,bar(0:255,B,'b');title('均衡化后的直方图');xlabel('灰度'),ylabel('出现概率')Y=X;for i=0:255Y(find(X==i))=S2(i+1);endend(2)主程序:X=imread('Fig0316(1)(top_left).tif');figure,imshow(X);Y=MyHisteq(X);figure,imshow(Y);3. 实验结果:第三题(例3.12)1. 问题:编写程序,重现例3.12中的实验,产生图3.27。

2.程序:X=imread('Fig0327(a)(tungsten_original).tif');figure,imshow(X);Y=histeq(X);figure,imshow(Y);E=4.0;k0=0.4;k1=0.02;k2=0.4;[m,n]=size(X);X1=X;Mg=sum(X1(:))/(m*n);Vg=sum(sum((X1-Mg).^2))/(m*n);for i=2:m-1for j=2:n-1X2=X1(i-1:i+1,j-1:j+1);Ms=sum(X2(:))/9;Vs=sum(sum((X2-Ms).^2))/9;if(Ms<=k0*Mg&&k1*Vg<=Vs&&Vs<=k2*Vg)X1(i,j)=E*X1(i,j);endendendfigure,imshow(X1);3. 实验结果:放大了约130倍的钨丝的SME图像:全局直方图均衡的结果:使用局部直方图统计增强后的图像:1. 问题:用自己编写编程实现中值滤波,用96页例3.14的图测试。

数字图像处理(直方图).

数字图像处理(直方图).

An
Combining
DFRT( n )
Renewed output images An exp(j n ) Cn
IDFRT( n )
Several input images Rn an exp(jn )
1 1 an , 0 n n n Updated input images a0 exp(j0 ) a0
15
按列统计的直方图
histc(pascal(3),1:6) produces the array [3 1 1; 0 1 0; 0 1 1; 0 0 0; >> pascal(3) 0 0 0; ans = 0 0 1]
1 1 1 1 2 3 1 3 6
每列目标数据的个数 统计
16
其他类型的统计图
条状图:bar x = 1:5; y = [0.2,0.3,0.1,0.8,0.9; 0.5,0.6,0.2,0.7,0.1]; bar(x,y');
20
其他类型的统计图
累加式条状图:barh rand('state',0); figure; barh(rand(10,5),'stacked'); colormap(cool)
6
彩色图像直方图
axes(‘Position’,*0.1,0.1,0.8,0.2+);% 生成坐标轴 stem(0:255,h1,'Marker','None','Color','r'); set(gca,'YColor','r','Xlim',[0,255]); axes('Position',[0.1,0.3,0.8,0.2]); stem(0:255,h2,'Marker','None','Color',[0,0.6,0]); set(gca,'YColor',[0,0.6,0],'Ytick',[0.005,0.01],'Xlim',[0,255]); axes('Position',[0.1,0.5,0.8,0.2]); stem(0:255,h3,'Marker','None','Color','b'); set(gca,'YColor','b','Ytick',[0.01,0.02],'Xlim',[0,255]);

【数字图像处理】直方图的均衡与规定化

【数字图像处理】直方图的均衡与规定化

【数字图像处理】直⽅图的均衡与规定化很多情况下,图像的灰度级集中在较窄的区间,引起图像细节模糊。

通过直⽅图处理可以明晰图像细节,突出⽬标物体,改善亮度⽐例关系,增强图像对⽐度。

直⽅图处理基于概率论。

直⽅图处理通常包括直⽅图均衡化和直⽅图规定化。

直⽅图均衡化可实现图像的⾃动增强,但效果不易控制,得到的是全局增强的结果。

直⽅图规定化可实现图像的有选择增强,只要给定规定的直⽅图,即可实现特定增强的效果。

直⽅图均衡化直⽅图均衡化借助灰度统计直⽅图和灰度累积直⽅图来进⾏。

灰度统计直⽅图灰度统计直⽅图反映了图像中不同灰度级出现的统计情况。

灰度统计直⽅图是⼀个⼀维离散函数,可表⽰为h (k )=n k ,k =0,1,...L −1,其中k 为某个灰度级,L 为灰度级的数量,最⼤取256,n k 为具有第k 级灰度值的像素的数⽬。

灰度直⽅图归⼀化概率灰度统计直⽅图的归⼀化概率表达形式给出了对s k 出现概率的⼀个估计,可表⽰为p s (s k )=n k /N ,k =0,1,2..,L −1式中,k 为某个灰度级;L 为灰度级的数量,最⼤取256;s k 为第k 级灰度值的归⼀化表达形式,s k =k /255,故s k ∈[0,1];n k 为具有第k 级灰度值的像素的数⽬;N 为图像中像素的总数,故(n k /N )∈[0,1]。

灰度累计直⽅图灰度累积直⽅图反映了图像中灰度级⼩于或等于某值的像素的个数。

灰度累积直⽅图是⼀个⼀维离散函数,可表⽰为H (k )=k ∑i =0n i ,k =0,1,2..,L −1式中,k 为某个灰度级;L 为灰度级的数量,最⼤取256;n i 为具有第i 级灰度值的像素的数⽬。

累积分布函数可以表⽰为:t k =k ∑i =0p s (s i )相对的,灰度累积直⽅图的归⼀化表⽰如下图:Processing math: 100%原理步骤直⽅图均衡化主要⽤于增强动态范围偏⼩的图像的反差。

直方图直方图均衡化增强

直方图直方图均衡化增强

直方图均衡化的原理
灰度直方图的计算十分简单,依据定义在离散形式下有下面的 公式成立:
nk p(k ) k 0,1, 2...L 1 其中L 1 255 (1 ) n
nk 为图像中出现灰度为k的像素数,n是图像像素总数 公式中: ,而 n n 即为频数 。
k
ni k (2)计算累积直方图各项:tk p i , k 0,1, L 1 i 0 n i 0
Gy ( z 3 2 z 6 z 9) ( z1 2 z 4 z 7) 计算出Gx和Gy的值后,用下式计算(x,y)点处的梯度值
2 2 1/2 g [Gx Gy ]
计算出给点处的梯度值后,设定一个合适的阈值T, 如果(x,y)处的g≥T则认为该点是边缘点。
Z1
Z4 Z7
数字图像直方图均衡化增强
实验三 数字图像边缘检测
边缘检测
边缘能勾划出目标物体,使观察者一目了然,边缘蕴含丰富 的内在信息(方向、阶跃性质和形状等)。从本质上说,图像边缘 是图像局部特征不连续性(灰度突变、颜色突变和纹理结构突变 等)的反映,它标志着一个区域的终结和另一个区域的开始。 边缘提取首先检测出图像局部特征的不连续性,然后再将这 些不连续的边缘像素连成完备的边界。边缘的特征是沿边缘走向 的像素变化平缓,而垂直于边缘方向的像素变化剧烈,所以,从 这个意义上说,提取边缘的算法就是检测出符合边缘特性的边缘 像素的算子。目前提取边缘常采用边缘算子法、曲面拟合法和模 板匹配法等方法。 两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰 度值不连续的结果,这种不连续性通常可以利用求导数的方法方 便地检测到,一般常用一阶导数和二阶导数来检测边缘。边缘检 测的基本思想是首先利用边缘增强算子,突出图像中的局部边缘, 然后定义像素的“边缘强度”,通过设置门限的方法提取边缘点 集。常用的边缘检测算子有Robert算子、Sobel算子、LOG算子 和Canny算子。

数字图像处理源程序及详解之灰度直方图

数字图像处理源程序及详解之灰度直方图

图像的点运算图像的点运算是图像处理中相对简单的技术,它主要用于改变一幅图像的灰度分布范围。

点运算通过一个变换函数将图像的像素一一转换,最终构成一幅新的图像。

由于操作对象是图像的一个个像素,故得名为“点运算”。

点运算的最大特点是输出像素值只与当前输入像素值有关。

点运算的图像处理过程可以用以下公式表示:g(x, y)=T[f(x, y)]其中f(x, y)表示输入图像,g(x, y)表示处理后的图像。

函数T 是对f的一种变换操作,在这里它表示灰度变换公式。

可以看到,对于点运算而言,最重要的是确定灰度变换公式。

变换公式一旦确定,点运算对于图像的处理效果就确定了。

本章研究的主要内容包括灰度直方图、线性变换、非线性变换、阈值变换、灰度拉伸及灰度均衡等。

若无特别说明,本章的点运算函数所针对的待处理对象即为8位灰度图。

■ 本章学习地图◆ 学会利用灰度直方图查看图像信息◆ 了解各种灰度变换公式◆ 掌握各种灰度变换的实现方法◆ 进一步了解各种点运算对于图像效果的影响9.1 灰度直方图本节介绍灰度直方图的相关概念和实现原理,它是提取图像信息的重要工具之一。

9.1.1 灰度直方图任何一幅图像都包含着丰富的图像信息,对于图像处理而言,如何提取这些信息并找出其中的特征就显得十分关键。

灰度直方图直观地显示了图像灰度分布的情况,这些信息在图像灰度变换等处理过程中显得十分重要。

在本章随后的内容中,也会经常通过直方图来分析变换后的图像效果。

图9-1显示一幅灰度图及它所对应的灰度直方图。

可以看到,灰度直方图是一个二维图。

从数学上来说,它描绘了图像各灰度值的统计特性,显示了各个灰度级出现的次数或概率。

从图形上来说,其横坐标表示图像的灰度值,取值范围是0到255。

其纵坐标则通过高度来表示出现次数的多少或者概率的高低。

在本章中,纵坐标表示像素出现的次数,最大值为该图像在0至 255阶灰度上分布像素出现次数的最大值。

图9-1 利用灰度直方图显示图像灰度分布需要说明的是,如果没有特别指出,在本章后续内容中的所有变换都是基于图9-1中左侧的图像进行的。

数字图像处理中的直方图均衡化使用注意事项

数字图像处理中的直方图均衡化使用注意事项

数字图像处理中的直方图均衡化使用注意事项直方图均衡化是一种通过分布调整来改善图像对比度的方法。

它通过重新分布图像的像素值以增强其视觉效果。

在数字图像处理中,直方图均衡化是一项常用的技术,但在使用过程中需要注意以下几个方面。

首先,直方图均衡化可能会导致图像细节丢失的问题。

因为直方图均衡化会根据像素值的分布进行调整,从而扩展像素值的范围,使得亮度范围更广。

但这也可能导致低对比度区域的细节消失,从而影响图像细节。

因此,在进行直方图均衡化时,应该密切关注图像的细节信息,尽量避免过度调整图像的对比度。

其次,直方图均衡化可能引起噪声的增加。

在直方图均衡化的过程中,图像的亮度分布被调整,可能会增加图像的噪声。

这是因为噪声通常与图像的低亮度区域有关,当低亮度区域被调整时,噪声也可能被放大。

为了减少噪声的影响,可以在均衡化之前对图像进行去噪处理,或者采用自适应的直方图均衡化方法,以避免过度增加图像噪声。

另外,直方图均衡化也可能导致图像的颜色失真问题。

因为直方图均衡化是基于像素值的灰度分布进行调整,对彩色图像来说,它可能会改变图像的颜色分布,从而造成颜色失真。

为了避免这种情况,可以在进行直方图均衡化前将图像转换为HSV颜色空间,并只对亮度(Value)通道进行均衡化,这样可以避免颜色的偏移。

此外,直方图均衡化的效果可能受到图像的动态范围限制。

在某些情况下,图像的动态范围可能不足以支持完整的直方图均衡化。

比如,当图像的某些区域非常亮或非常暗时,直方图可能会在动态范围两端产生剧烈的波动,从而导致图像的细节丢失或噪声增加。

为了解决这个问题,可以采用自适应的直方图均衡化方法,以根据图像的局部动态范围来进行调整,减少对整体图像的影响。

最后,直方图均衡化的选择需要根据具体的应用需求来确定。

直方图均衡化可以改善图像的对比度,使图像更加清晰和易于处理。

但对于一些特定的图像处理任务,如目标检测、图像识别等,直方图均衡化可能并不适用。

图像处理:数字图像的灰度直方图均衡化

图像处理:数字图像的灰度直方图均衡化

图像处理:数字图像的灰度直方图均衡化简介在数字图像处理中,灰度直方图均衡化是一种常用的图像增强技术。

它通过重新分配图像中各个灰度级的像素值,使得最终的灰度直方图呈现出更均匀分布的特点,从而提高图像的对比度和视觉效果。

原理灰度直方图是描述一幅图像中每个灰度级出现频次的统计直方图。

在灰度直方图均衡化过程中,首先需要计算原始图像的累积概率密度函数(CDF),然后利用CDF进行线性变换将原始像素值映射到新的像素值上。

这个线性变换可以通过以下公式表示:G' = (G_max - G_min) \times CDF(G) + G_min其中G'是新的像素值,G是原始的像素值,G_max和G_min分别为像素值范围最大和最小值,而CDF(G)则是原始图像中小于或等于G的累积概率密度函数。

实现步骤1.读取待处理的数字图像。

2.将彩色或多通道图转化为灰度图。

3.计算原始灰度图像的像素值的频次统计,得到原始灰度直方图。

4.计算原始灰度直方图的累积概率密度函数。

5.根据累积概率密度函数进行线性变换,将原始像素值映射到新的像素值上。

6.生成处理后得到的均衡化后的图像。

7.输出均衡化后的图像。

应用场景灰度直方图均衡化在许多领域都有广泛应用,例如医学影像分析、计算机视觉和数字摄影等。

其主要作用是增强图像对比度、改善细节和提升视觉效果。

同时,该技术也能够在一些特定场景下帮助识别和检测对象。

总结通过使用灰度直方图均衡化技术,可以使得数字图像中各个灰度级的像素值更加均匀分布,从而提高图像对比度和视觉效果。

这种方法在数字图像处理中具有广泛的应用,并且简单易实现。

然而,需要注意的是,在某些特定情况下,采用该方法可能会产生过度增强或引入噪声等问题,因此在实际应用中需要谨慎使用并结合其他处理方法进行综合处理。

数字图像处理2数字图像基础-4,5,6

数字图像处理2数字图像基础-4,5,6
1 单幅图像 → 单幅图像 ,如图(a). 2 多幅图像 →单幅图像, 如图(b). 3 单(或多)幅图像→ 数字或符号等。
2.5 图像处理算法的形式
二.图像处理的几种具体算法形式 1.局部处理
对于任一像素(i,j),把像素的集合 {(i+p,j+q),p、q取任意整数}叫做该像素的邻 域,
2.5 图像处理算法的形式
依赖于起始像素的位置。为此,跟踪处理的结果与从图像 哪一部份开始进行处理相关。
②能够根据利用在此以前的处理结果来限定处理范围,从而 可能避免徒劳的处理。另外,由于限制了处理范围,有可 能提高处理精度。
③用于边界线、等高线等线的跟踪(检测)方面。如根据搜索 法检测边缘曲线。
2.5 图像处理算法的形式
4.位置不变处理和位置可变处理 输出像素JP(i,j)的值的计算方法与像素
的位置(i,j)无关的处理称为位置不变处理或 位移不变处理。随位置不同计算方法也不同的 处理称为位置可变处理或位移可变处理。
2.5 图像处理算法的形式
5.窗口处理和模板处理 单独对图像中选定的矩形区域内的像素进
行处理的方式叫做窗口处理。 单独对图像中选定的任意形状的像素进行
0
255 0
255 0
255
(a) 恰当量化 (b)未能有效利用动态范围 (c)超过了动态范围
2.4 图像灰度直方图
2. 边界阈值选取(确定图像二值化的阈值)
假设某图象的灰度直方图具有 二峰性,则表明这 个图象的较亮的区域和较暗的区域可以较好地分离, 以这一点为阈值点,可以得到好的二值处理的效果。
2.4 图像灰度直方图
1 2 3 45 6 6 4 3 22 1 1 6 6 46 6 3 4 5 66 6 1 4 6 62 3 1 3 6 46 6

用MATLAB统计图像直方图

用MATLAB统计图像直方图

编程思想
1、读入图像,cameraman.tif,并显示
2、获取图像空间坐标,灰度范围 3、统计各个灰度的像素个数 4、绘制直方图
绘图:plot(x,y) x = -pi:pi/10:pi; y = tan(sin(x)) - sin(tan(x)); plot(x,y,'--rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10)
I K
J L
4.2 图像的直方图修正
•步

•计算方法或公式
•0 •786 •0.1
9
•计算结果
•1 •102 0 •0.2
5
列出图像灰度级( •1 •列出图像灰度级(i或j) 统计原图像各灰度级像素个数n •2 •统计原图像各灰度级像素个数ni
•2 •852 •0.2
1
•3 •650 •0.1
6
•4 •33 3 •0.0
g (m, n) =
f avg ;
| f (m, n) − f avg |> T else
T = kσ f
f (m, n);
σ, 表示图像的均 其中的门限T 其中的门限T通常选择为 f 方差。但实际应用中,门限T 方差。但实际应用中,门限T要利用经验值和多次试验 来获得。这种方法对抑制椒盐噪声比较有效, 来获得。这种方法对抑制椒盐噪声比较有效,同时也 能较好地保护仅有微小变化差的目标物细节。 能较好地保护仅有微小变化差的目标物细节。
•85

数字图像处理---直方图均衡化

数字图像处理---直方图均衡化

数字图像处理---直⽅图均衡化直⽅图均衡化的英⽂名称是Histogram Equalization. 图像对⽐度增强的⽅法可以分成两类:⼀类是直接对⽐度增强⽅法;另⼀类是间接对⽐度增强⽅法。

直⽅图拉伸和直⽅图均衡化是两种最常见的间接对⽐度增强⽅法。

直⽅图拉伸是通过对⽐度拉伸对直⽅图进⾏调整,从⽽“扩⼤”前景和背景灰度的差别,以达到增强对⽐度的⽬的,这种⽅法可以利⽤线性或⾮线性的⽅法来实现;直⽅图均衡化则通过使⽤累积函数对灰度值进⾏“调整”以实现对⽐度的增强。

直⽅图均衡化处理的“中⼼思想”是把原始图像的灰度直⽅图从⽐较集中的某个灰度区间变成在全部灰度范围内的均匀分布。

直⽅图均衡化就是对图像进⾏⾮线性拉伸,重新分配图像像素值,使⼀定灰度范围内的像素数量⼤致相同。

直⽅图均衡化就是把给定图像的直⽅图分布改变成“均匀”分布直⽅图分布。

缺点: 1)变换后图像的灰度级减少,某些细节消失; 2)某些图像,如直⽅图有⾼峰,经处理后对⽐度不⾃然的过分增强。

直⽅图均衡化是图像处理领域中利⽤图像直⽅图对对⽐度进⾏调整的⽅法。

这种⽅法通常⽤来增加许多图像的局部对⽐度,尤其是当图像的有⽤数据的对⽐度相当接近的时候。

通过这种⽅法,亮度可以更好地在直⽅图上分布。

这样就可以⽤于增强局部的对⽐度⽽不影响整体的对⽐度,直⽅图均衡化通过有效地扩展常⽤的亮度来实现这种功能。

这种⽅法对于背景和前景都太亮或者太暗的图像⾮常有⽤,这种⽅法尤其是可以带来X光图像中更好的⾻骼结构显⽰以及曝光过度或者曝光不⾜照⽚中更好的细节。

这种⽅法的⼀个主要优势是它是⼀个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直⽅图,并且计算量也不⼤。

这种⽅法的⼀个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对⽐度并且降低有⽤信号的对⽐度。

1.连续灰度值r:待处理图像的灰度。

假设r的取值区间[0,L-1], r = 0表⽰⿊⾊,r = L - 1表⽰⽩⾊。

什么是直方图?

什么是直方图?

直方图是一种用于表示数字图像中像素灰度分布的统计图表。

它将图像的灰度范围划分为若干个等级,并统计每个等级中像素的数量,从而形成一个柱状图。

直方图的横坐标表示灰度等级,通常从最暗的黑色(0)到最亮的白色(255)进行划分。

纵坐标表示对应灰度等级的像素数量。

通过观察直方图,可以了解图像中不同灰度级别的像素分布情况。

直方图可以提供以下信息:
1. 图像的整体对比度:直方图的形状可以反映图像的整体对比度。

如果直方图的分布集中在较窄的灰度范围内,说明图像的对比度较低;如果直方图的分布较为分散,说明图像的对比度较高。

2. 像素分布情况:直方图可以显示图像中不同灰度级别的像素数量,从而了解图像的亮度分布。

如果某个灰度级别的像素数量较多,说明该灰度在图像中占据较大的比例。

3. 图像的曝光情况:通过观察直方图的左右端点,可以判断图像的曝光情况。

如果直方图的左侧截断,说明图像可能存在欠曝光;如果右侧截断,说明图像可能存在过曝光。

4. 色彩平衡:对于彩色图像,可以分别查看每个颜色通道的直方图,以评估图像的色彩平衡情况。

在图像处理中,直方图可以用于图像增强、对比度调整、色彩平衡等操作的参考。

它是一种简单而直观的工具,帮助我们了解数字图像的统计特征。

数字图像处理之直方图均衡化

数字图像处理之直方图均衡化

数字图像处理之直⽅图均衡化直⽅图均衡化是图像处理领域中利⽤图像直⽅图对对⽐度进⾏调整的⽅法。

直⽅图均衡化要达到的效果:基本思想:把原始图的直⽅图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从⽽达到增强图像整体对⽐度的效果使⽤的⽅法是灰度级变换:s = T(r)原理:s=T(r) 0≤r≤1T(r)满⾜下列两个条件:(1)T(r)在区间0≤r≤1中为单值且单调递增(2)当0≤r≤1时,0≤T(r) ≤1条件(1)保证原图各灰度级在变换后仍保持从⿊到⽩(或从⽩到⿊)的排列次序条件(2)保证变换前后灰度值动态范围的⼀致性Pr(r)是r的概率密度函数,Ps(s)是s的概率密度函数,Pr(r)和T(r)已知,且T-1(s) 满⾜上述条件(1),所以有已知⼀种重要的变换函数:关于上限的定积分的导数就是该上限的积分值(莱布尼茨准则)对于离散值:其中r k 是第k个灰度级,k = 0,1,2,…,L-1. n k是图像中灰度级为r k的像素个数. n是图像中像素的总数.已知变换函数的离散形式为:sk称作直⽅图均衡化将输⼊图像中灰度级为rk(横坐标)的像素映射到输出图像中灰度级为sk (横坐标)的对应像素得到.实现代码:/******************************************************************************* 作⽤: 灰度均衡函数* 参数:* pixel 原始像素数组* tempPixel 保存变换后图像的像素数组* width 原始图像宽度******************************************************************************/void GrayEqualize(BYTE* pixel, BYTE* tempPixel, UINT width, UINT height){// 灰度映射表BYTE map[256];long lCounts[256];memset(lCounts, 0, sizeof(long) * 256);// 计算各灰度值个数for (UINT i = 0; i < width * height; i++){int x = pixel[i * 4];lCounts[x]++;}// 保存运算中的临时值long lTemp;for (int i = 0; i < 256; i++){lTemp = 0;for (int j = 0; j <= i; j++)lTemp += lCounts[j];map[i] = (BYTE)(lTemp * 255.0f / width / height);}// 变换后的值直接在映射表中查找for (UINT i = 0; i < width * height; i++){int x = pixel[i * 4];tempPixel[i*4] = tempPixel[i*4+1] = tempPixel[i*4+2] = pixel[i * 4]; tempPixel[i*4+3] = 255;}}View Code彩⾊图直⽅图均衡化:更清晰:opencv代码:////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>using namespace cv;using namespace std;int main( int argc, const char** argv ){Mat img = imread("MyPic.JPG", CV_LOAD_IMAGE_COLOR); //open and read the imageif (img.empty()) //if unsuccessful, exit the program{cout << "Image cannot be loaded..!!" << endl;return -1;}vector<Mat> channels;Mat img_hist_equalized;cvtColor(img, img_hist_equalized, CV_BGR2YCrCb); //change the color image from BGR to YCrCb formatsplit(img_hist_equalized,channels); //split the image into channelsequalizeHist(channels[0], channels[0]); //equalize histogram on the 1st channel (Y)merge(channels,img_hist_equalized); //merge 3 channels including the modified 1st channel into one imagecvtColor(img_hist_equalized, img_hist_equalized, CV_YCrCb2BGR); //change the color image from YCrCb to BGR format (to display image properly)//create windowsnamedWindow("Original Image", CV_WINDOW_AUTOSIZE);namedWindow("Histogram Equalized", CV_WINDOW_AUTOSIZE);//show the imageimshow("Original Image", img);imshow("Histogram Equalized", img_hist_equalized);waitKey(0); //wait for key pressdestroyAllWindows(); //destroy all open windowsreturn0;}View Code代码中使⽤的函数:New OpenCV functionscvtColor(img, img_hist_equalized, CV_BGR2YCrCb)This line converts the color space of BGR in 'img' to YCrCb color space and stores the resulting image in 'img_hist_equalized'.In the above example, I am going to equalize the histogram of color images. In this scenario, I have to equalize the histogram of the intensity component only, not the color components. So, BGR format cannot be used because its all three planes represent color components blue, green and red. So, I have to convert the original BGR color space to YCrCb color space because its 1st plane representsthe intensity of the image where as other planes represent the color components.void split(const Mat& m, vector<Mat>& mv )This function splits each channel of the 'm' multi-channel array into separate channels and stores them in a vector, referenced by 'mv'. Argument listconst Mat& m - Input multi-channel arrayvector<Mat>& mv - vector that stores the each channel of the input arrayequalizeHist(channels[0], channels[0]);Here we are only interested in the 1st channel (Y) because it represents the intensity information whereas other two channels (Cr and Cb) represent color components. So, we equalize the histogram of the 1st channel using OpenCV in-built function, 'equalizeHist(..)' and other two channels remain unchanged.void merge(const vector<Mat>& mv, OutputArray dst )This function does the reverse operation of the split function. It takes the vector of channels and create a single multi-channel array. Argument listconst vector<Mat>& mv - vector that holds several channels. All channels should have same size and same depthsOutputArray dst - stores the destination multi-channel arraycvtColor(img_hist_equalized, img_hist_equalized, CV_YCrCb2BGR)This line converts the image from YCrCb color space to BGR color space. It is essential to convert to BGR color space because 'imshow(..)' OpenCV function can only show images with that color space.This is the end of the explanation of new OpenCV functions, found in the above sample code. If you are not familiar with other OpenCV functions, please refer to the previous lessons.参考博客:http://opencv-srf.blogspot.jp/2013/08/histogram-equalization.html。

数字图像处理入门—直方图修正和彩色变换

数字图像处理入门—直方图修正和彩色变换

数字图像处理入门—直方图修正和彩色变换这次,我们主要和调色板打交道。

先从最简单的反色讲起。

1. 反色(invert)反色就是形成底片效果。

如下图所示,图2为图1反色后的结果图1. 原图图2. 图1反色后的结果反色有时是很有用的,比如说,图1中黑色区域占绝大多数,这样打印起来很费墨,我们可以先进行反色处理再打印。

反色的实际含义是将R,G,B值反转。

若颜色的量化级别是256,则新图的R,G,B值为255减去原图的R,G,B值。

这里针对的是所有图,包括真彩图,带调色板的彩色图(又称为伪彩色图),和灰度图。

针对不同种类有不同的处理。

先看看真彩图。

我们知道真彩图不带调色板,每个像素用3个字节,表示R,G,B三个分量。

所以处理很简单,把反转后的R,G,B值写入新图即可。

再来看看带调色板的彩色图,我们知道位图中的数据只是对应调色板中的一个索引值,我们只需要将调色板中的颜色反转,形成新调色板,而位图数据不用动,就能够实现反转。

灰度图是一种特殊的伪彩色图,只不过调色板中的R,G,B值都是一样的而已。

所以反转的处理和上面讲的一样。

这里,我想澄清一个概念。

过去我们讲二值图时,一直都说成黑白图。

二值位图一定是黑白的吗?答案是不一定。

我们安装Windows95时看到的那幅setup.bmp是由蓝色和黑色组成的,但它实际上是二值图。

原来,它的调色板中的两种颜色是黑与蓝,而不是黑与白。

所以说二值图也可以是彩色的,只不过一般情况下是黑白图而已。

实现反色的源程序2. 彩色图转灰度图(color to grayscale)我们在第二讲时提到了YUV的颜色表示方法,知道在这种表示方法中,Y分量的物理含义就是亮度,它含了灰度图的所有信息,只用Y分量就完全能够表示出一幅灰度图来。

YUV和RGB之间有着如下的对应关系。

我们利用上式,根据R,G,B的值求出Y值后,将R,G,B值都赋值成Y,就能表示出灰度图来,这就是彩色图转灰度图的原理。

先看看真彩图。

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

在对输入图像处理时,计算某一输出像素 JP(i,j)值由输入图像IP(i,j)像素的小邻域 N(i,j)中的像素值确定。这种处理称为局部处 理,或者称邻域处理。局部处理的计算表达式

JP(i, j) N (N (i, j))
在局部处理中,当邻域N(i,j)仅包含 IP(i,j)像素时的处理称为点处理。点处理的 计算表达式为:
2.5 图像处理算法的形式
跟踪处理有以下特点: ①对某个像素的处理,依赖于这以前的处理结果,
从而也就依赖于起始像素的位置。为此,跟踪 处理的结果与从图像哪一部份开始进行处理相 关。 ②能够根据利用在此以前的处理结果来限定处理 范围,从而可能避免徒劳的处理。另外,由于 限制了处理范围,有可能提高处理精度。 ③用于边界线、等高线等线的跟踪(检测)方面。 如根据搜索法检测边缘曲线。
L1
H Pi log2 Pi
i0
Pi是图像灰度级为i的像素出现的频率,图像的灰度范 度图的灰度直方图
灰度图具有二峰性
具有二峰性的灰度图的2值化
2.5 图像处理算法的形式
一. 图像处理基本功能的形式 按图像处理的输出形式,图像处理的基本功能可
分为三种形式。
JP(i, j) p (IP(i, j))
2.5 图像处理算法的形式
在局部处理中,输出像素JP(i,j)的值取 决于输入图像大范围或全部像素的值,这种处 理称为大局处理。其计算表达式为:
JP(i, j) G (G(i, j))
2.5 图像处理算法的形式
2.迭代处理 反复对图像进行某种运算直至满足给定的
2.4 图像灰度直方图
(a) 恰当量化 (b)未能有效利用动态范围 (c)超过了动态范围
2.4 图像灰度直方图
2. 边界阈值选取(确定图像二值化的 阈值)
假设某图象的灰度直方图具有 二峰性, 则表明这个图象的较亮的区域和较暗的区 域可以较好地分离,以这一点为阈值点, 可以得到好的2值处理的效果。
1 单幅图像 → 单幅图像 ,如图(a). 2 多幅图像 →单幅图像, 如图(b). 3 单(或多)幅图像→ 数字或符号等。
2.5 图像处理算法的形式
二.图像处理的几种具体算法形式 1.局部处理
对于任一像素(i,j),把像素的 集合{(i+p,j+q),p、q取任意整数}叫 做该像素的邻域,
2.5 图像处理算法的形式
2.6图像的数据结构与特征
图像的特征有很多,但在实际的特征提取中, 重视何种特征主要依赖于对象和处理的目的。 按提取特征的范围大小又可分为: ①点特征 仅由各个像素就能决定的性质。如单色图像 中的灰度值、彩色图像中的红(R)、绿(G)、蓝 (B)成分的值。
2.6图像的数据结构与特征
②局部特征 在小邻域内所具有的性质,如线和边缘的强度、 方向、密度和统计量(平均值、方差等)等。
2.6图像的数据结构与特征
4.树结构
对于一幅二值图像的行、列都接连不断地二等 分,如果图像被分割部分中的全体像素都变成 具有相同的特征时,这一部分则不再分割。用 这种方法,可以把图像用树结构(4叉树)来表 示。这可以用在特征提取和信息压缩等方面。
2.6图像的数据结构与特征
5.多重图像数据存储
在彩色图像(红、绿、兰)或同一对象用
2.6图像的数据结构与特征
③线和角点特征
城市区划图中有建筑群、街道、公路、铁路、 桥梁等,这些地物可用线、线相交的角点来表 示。从图中提出这些特征,不仅可压缩图像, 也可用于识别。角点代表的局部结构关系不因 视角而改变,在图像匹配中很有用。
④纹理特征 纹理区域是指某种结构在比它更大的范围内
大致呈现重复排列,这种结构称为纹理基元。 有如草地、大面积农作物构成的自然纹理和如 砖墙、建筑群等构成的人工纹理。
2.6图像的数据结构与特征
③时相特征 时相特征主要反映在不同时间获得的同一地区 各图像之间存在的差异。它是对动体进行监测、 跟踪的主要依据。
2.6图像的数据结构与特征
2)人工特征 图像的人工特征很多,主要包括以下几种:
①直方图特征 ②灰度边缘特征
图像灰度在某个方向上的局部范围内表现出不 连续性,这种灰度明显变化点的集合称为边缘。 灰度边缘特征反映了图像中目标或对象所占的 面积大小和形状。
条件,从而得到输出图像的处理形式称为迭代 处理。下图为图像的细化处理过程。
2.5 图像处理算法的形式
3.跟踪处理 选择满足适当条件的像素作为起始像
素,检查输入图像和已得到的输出结果, 求出下一步应该处理的像素,进行规定 的处理,然后决定是继续处理下面的像 素,还是终止处理。这种处理形式称为 跟踪处理。
2.4 图像灰度直方图
g(
x,
y)
0 1
f (x, y) T f (x, y) T
2.4 图像灰度直方图
3.当物体部分的灰度值比其它部分灰度值 大时,可利用直方图统计图像中物体的 面积。
A= n vi iT
式中n为图像像素总数,
vi是图像灰度级为i的像素出现的频率。
2.4 图像灰度直方图
4. 计算图像信息量H(熵)
压缩
组合方式
2.6图像的数据结构与特征
2.比特面方式
按比特位存取像素,即将每个像素的相同比特 位用一个二维数组表示,形成比特面。n个比 特位的灰度图像采用比特面方式存取就有n个 比特面。
这种结构能充分利 用内存空间,但对 灰度图像处理耗时 多。
n-1
210
2.6图像的数据结构与特征
3.分层结构 由原始图像开始依次构成像素数愈来愈少
②处理算法要按一定顺序进行。
因此,不能同时并行计算各像素的输出值, 且串行处理的顺序会影响处理结果。
2.5 图像处理算法的形式
对图像内的各像素同时进行相同形式运 算的一种处理形式称为并行处理。其特 点如下: ①输出图像像素(i, j)的值,只用输入 图像的(i, j)像素的邻域像素进行计算; ②相对于不同(i, j)的输出值可以独立 进行计算。
2.6图像的数据结构与特征
1)自然特征 图像是空间景物反射或辐射的光谱能量的记
录,因而具有光谱特征、几何特征和时相特征。 ①光谱特征
同一景物对不同波长的电磁波具有不同的反射 率,不同景物对同一波长也可能具有不同的反 射率。因而不同类型的景物在各个波段的数字 成像,就构成了数字图像的光谱特征。数字图 像的光谱特征可用于多波段遥感,从中获得关 于地理、地质、地貌等丰富的信息。
2.4 图像灰度直方图
在数字图像处理中,灰度直 方图是最简单且最有用的工具,可 以说,对图像的分析与观察直到形 成一个有效的处理方法,都离不开 直方图。
2.4 图像灰度直方图
一、灰度直方图的定义
灰度直方图是灰度级的函数,描述的是 图像中该灰度级的像素个数或该灰度级像素 出现的频率。即:横坐标表示灰度级,纵坐 标表示图像中该灰度级出现的个数或该灰度 级像素出现的频率,这个关系图就是灰度直 方图。它反映了图像灰度分布的情况。
③区域特征 在图像内的对象物 (一般是指与该区域外部有 区别的具有一定性质的区域)内的点或者局部 的特征分布,或者统计量,以及区域的几何特 征(面积、形状)等。
④整体特征 整个图像作为一个区域看待时的统计性质和结 构特征等。
2.6图像的数据结构与特征
2.特征提取 获取图像特征信息的操作称作特征提取。它
2.6图像的数据结构与特征
②几何特征 几何特征主要表现为图像的空间分辨率、图像
纹理结构及图像变形等几个方面。
空间分辨率反映所采用的设备性能。如SPOT卫
星全色图像分辨力设计为10米×10米。 纹理结构是指影像细部的形状、大小、位置、
方向以及分布特征,是图像目视判读的主要依 据,也是模式识别的主要依据。 图像变形导致所得图像中的几何形状与实物平 面投影不相似。
2.5 图像处理算法的形式
4.位置不变处理和位置可变处理 输出像素JP(i,j)的值的计算方法与
像素的位置(i,j)无关的处理称为位置 不变处理或位移不变处理。随位置不同 计算方法也不同的处理称为位置可变处 理或位移可变处理。
2.5 图像处理算法的形式
5.窗口处理和模板处理 单独对图像中选定的矩形区域内的像素进
2.6图像的数据结构与特征
2.6.1 图像的数据结构
最常用的方式是将图像各像素用一维或二维数 组相应的各元素加以存储。除此之外,还有下 列方式。
2.6图像的数据结构与特征
1.组合方式 组合方式是一个字长存放多个像素灰度值的方
式。它能起到节省内存的作用,但导致计算量 增加,使处理程序复杂。
图像处理 解压
作为模式识别、图像理解或信息量压缩的基础 是很重要的。
通过特征提取,可以获得特征构成的图像 (称作特征图像)和特征参数。
2.6图像的数据结构与特征
3.特征空间 对于由图像中提取出的特征量,利用特征空
间这一定义,可应用于模式分类等方面。把从 图像提取的m个特征量y1,y 2,…,ym,用m维 的向量Y=[y1 y2…ym]t表示称为特征向量。另 外,对应于各特征量的m维空间叫做特征空间, 那么特征向量Y就可作为这个特征空间的点来 表示。
0.5
0.25
i
123456
2.4 图像灰度直方图
二、直方图的性质
1.灰度直方图只能反映图像的灰 度分布情况,而不能反映图像像素 的位置,即所有的空间信息全部丢 失。
2.4 图像灰度直方图
2.一幅图像对应唯一的灰度直方图,反 之不成立。不同的图像可对应相同的直 方图。下图给出了一个不同的图像具有 相同直方图的例子。
2.4 图像灰度直方图
1 2 3 45 6 6 4 3 22 1 1 6 6 46 6 3 4 5 66 6 1 4 6 62 3 1 3 6 46 6
123456 5 4 5 6 2 14
相关文档
最新文档