灰度图像二值化处理
图像灰度化和二值化

图像灰度化和二值化1.灰度化图像的灰度化处理的基本原理:彩色图像转化成为灰度图像的过程成为图像的灰度化处理。
彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。
而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。
灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
方法:1.分量法:对于每一个像素点,取其任意一种(R或G或B)为该点的灰度值。
2.最大值法:对于每一个像素点,取Max(R,G,B)为该点的灰度值。
3.平均值发:对于每一个像素点,取Avg(R,G,B)为该点的灰度值。
4.加权平均法:对于每一个像素点,由于人眼对红色光,绿色光,蓝色光的敏感程度不同而赋予不同的权重,从而得到该点的灰度值。
公式如下:Gray = 0.30 * R + 0.59 * G + 0.11 *B为什么将彩色图像灰度化?我们识别物体,最关键的因素是梯度(现在很多的特征提取,SIFT,HOG等等本质都是梯度的统计信息),梯度意味着边缘,这是最本质的部分,而计算梯度,自然就用到灰度图像了。
颜色本身,非常容易受到光照等因素的影响,同类的物体颜色有很多变化。
所以颜色本身难以提供关键信息。
2010PAMI有colorSIFT的一些工作,本质也是不同通道的梯度。
梯度信息对于识别物体来说很重要。
所以我们可以把灰度图像看作图像的强度(Intensity),来求一些梯度特征。
比较常用的有HOG,LBP,SIFT等等。
如下图为行人检测中的hog模型。
通过hog来检测部件,最后找到图像中的行人。
(Reference: rbgirshick/voc-dpm)注:可视化为rgb图像,但输入是灰度图像,不要被骗了。
二值化处理的原理及其应用

二值化处理的原理及其应用一、什么是二值化处理二值化处理,也称为二值图像处理,指的是将一副灰度图像转化为只包含两种颜色的图像。
通常情况下,这两种颜色是黑色和白色,也可以是其他两种自定义颜色。
二、二值化处理的原理二值化处理的原理基于图像的灰度分布。
在灰度图像中,每个像素点的灰度值都是介于0(黑色)和255(白色)之间的一个数值。
二值化处理通过设定一个阈值将灰度图像的像素点分为两个类别:低于阈值的像素点被设置为0(黑色),高于阈值的像素点被设置为255(白色)。
常用的二值化处理算法有全局阈值算法、局部阈值算法和自适应阈值算法。
1. 全局阈值算法全局阈值算法是最简单的二值化算法之一。
它假设整个图像的前景和背景的灰度值之间存在一个明显的分界点,通过选取合适的阈值将图像二值化。
常见的全局阈值算法有基于固定阈值的大津算法、基于最大熵的最大类间方差法等。
这些算法通过计算像素灰度值的全局分布,选择一个合适的阈值,以实现二值化处理。
2. 局部阈值算法局部阈值算法考虑到图像不同区域的灰度分布不一致性,采用不同的阈值对图像进行分割。
常用的局部阈值算法有均值阈值法、中值阈值法等。
这些算法通过计算像素周围邻域的平均灰度值或中值,以确定每个像素的二值化阈值。
这样可以更好地适应图像中不同区域的灰度特征,提高二值化效果。
3. 自适应阈值算法自适应阈值算法是对全局阈值算法和局部阈值算法的一种改进。
它根据每个像素的局部特征,自适应地选择阈值。
常见的自适应阈值算法有基于局部均值的局部二值化算法、基于局部方差的局部二值化算法等。
这些算法通过考虑像素周围邻域的灰度统计特征,提高了对不同区域的灰度分布的适应能力。
三、二值化处理的应用二值化处理在图像处理和计算机视觉领域被广泛应用。
以下是几个常见的应用场景:1.文字识别:二值化处理可以将图像中的文字区域与背景区域分开,使得文字更容易提取和识别。
2.边缘检测:二值化处理可以将图像中的边缘区域提取出来,用于图像的边缘检测和轮廓分析。
matlab灰度处理二值化处理

Matlab在图像处理领域有着广泛的应用,其中灰度处理和二值化处理是常见的图像处理方法之一。
本文将详细介绍Matlab中的灰度处理和二值化处理的原理和实现方法。
一、灰度处理1. 灰度图像的概念灰度图像是指图像中每个像素的灰度值介于0-255之间的图像。
在灰度图像中,0代表黑色,255代表白色,中间的灰度值代表了不同程度的灰色。
2. 灰度处理的原理灰度处理是将彩色图像转换为灰度图像的过程。
在Matlab中,可以通过以下公式实现灰度处理:灰度值 = 0.299 * R + 0.587 * G + 0.114 * B其中,R、G、B分别代表彩色图像中的红色、绿色和蓝色分量。
通过对每个像素的RGB分量进行加权求和,可以得到对应的灰度值。
3. 灰度处理的实现在Matlab中,可以使用`rgb2gray`函数实现灰度处理。
具体的代码如下:```matlab读取彩色图像rgbImage = imread('example.jpg');灰度处理grayImage = rgb2gray(rgbImage);显示灰度图像imshow(grayImage);```二、二值化处理1. 二值化图像的概念二值化图像是指将灰度图像中的像素值转换为0或255的图像。
在二值化图像中,像素值为0代表黑色,像素值为255代表白色。
2. 二值化处理的原理二值化处理的目的是将灰度图像中的灰度值转换为0或255。
一般可以通过设置一个阈值,将低于阈值的像素值设为0,将高于阈值的像素值设为255。
3. 二值化处理的实现在Matlab中,可以使用`im2bw`函数实现二值化处理。
具体的代码如下:```matlab读取灰度图像grayImage = imread('example_gray.jpg');设置阈值threshold = 128;二值化处理binaryImage = im2bw(grayImage, threshold/255);显示二值化图像imshow(binaryImage);```三、总结本文详细介绍了Matlab中灰度处理和二值化处理的原理和实现方法。
图像灰度变换、二值化、直方图

图像灰度变换、⼆值化、直⽅图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灰度图。
图像处理中的图像二值化算法

图像处理中的图像二值化算法随着科技的发展,图像处理技术应用越来越广泛。
作为一项基础技术,图像二值化算法在图像处理中扮演着非常关键的角色,它可以将图像分割成黑白两种颜色,也就是将图像中的灰度值转化为0和1,简化了后续的处理流程。
本文将介绍图像二值化算法的基本原理和应用情况。
一、二值化算法的基本原理在图像中,每个像素都有一定的灰度值,在8位灰度图像中,灰度值的范围在0-255之间,其中0是代表黑色,255代表白色。
当我们需要处理一张图片时,如果直接对每一个灰度值进行处理,那么处理的过程就会非常繁琐,因此,我们需要将图像灰度值转化为0和1两种数字进行处理。
常见的二值化算法有全局阈值算法、局部阈值算法、自适应阈值算法、基于梯度算法等。
其中,全局阈值算法是最基本、最简单的一种算法。
它将整张图像分成黑白两个部分,通过将整个图像的像素点的灰度值与一个固定的阈值进行比较,如果像素点的灰度值大于阈值,就将该像素点的灰度值置为1,否则置为0。
使用全局二值化算法的步骤如下:1.将图像读入到内存中;2.将图像转化为灰度图像;3.计算整个图像的平均灰度值,该平均灰度值作为全局阈值;4.将图像中每个像素点的灰度值与该全局阈值进行比较,灰度值大于等于该全局阈值的像素点赋值为255(代表白色),小于该阈值的像素点赋值为0(代表黑色);5.输出处理后的图像。
当然,这种方法的缺点也非常明显,那就是无法适应不同场合下的图像处理需求,处理效果难以保证。
因此,我们需要更为灵活的算法和方法来进行二值化处理。
二、不同类型的二值化算法1.基于直方图的全局阈值法二值化算法中的全局阈值算法通常是将整个图像分成两类像素:一类像素比较暗,另一类像素比较亮。
在直方图中,该分割就是直方图上的两个峰。
我们可以通过直方图分析来确定这个阈值,并将灰度值低于阈值的像素变为黑色,将灰度值高于阈值的像素变为白色。
对于图像I(x,y),它的灰度直方图h(i)可以表示为:h(i) = N(i) / MN (i=0,1,…,L-1)其中N(i)是图像中所有像素灰度值为i的像素数量,MN是总的像素数量,L是灰度级别数量(在8位图像中,L等于256)然后我们需要确定一个阈值T,所有像素点的灰度值小于T的变为黑色,大于等于T的变为白色。
二值化实验报告

数字图像处理实验报告学号姓名日期实验一灰度图像的二值化处理一、实验目的图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。
图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。
在不同的应用中,阈值的选取决定着图像特征信息的保留。
因此,图像二值化技术的关键在于如何选取阈值。
二、实验内容1、编程绘制数字图像的直方图。
2、灰度图像二值化处理。
三、实验要求1、自己选择灰度图像。
2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。
3、使用VC++编程序。
四、设计思想(阈值选取算法)灰度图像是指只含亮度信息,不含色彩信息的图像, 将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。
图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。
即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
(1)全局阈值法:全局阈值法是指在二值化过程中只使用一个全局阈值T的方法。
它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则,取为背景色。
典型的全局阈值方法包括Otsu方法、最大熵方法等。
为了满足图像处理应用系统自动化及实时性要求,图像二值化的阈值的选择最好由计算机自动来完成(平均灰度值法,大津法,边缘算子法)。
(2)局部阈值法:局部阈值法一般用于识别干扰比较严重、品质较差的图像,相对整体阈值方法有更广泛的应用,但也存在缺点和问题,如实现速度慢、不能保证字符笔画连通性以及容易出现伪影现象(即在背景域受到噪音干扰得到笔画结果)等。
比较典型的局部二值化算法有Bernsen方法、多阈值的梯度强度法、基于纹理图像的方法、最大方差法等。
五、源程序(附上注释)#include "stdafx.h"#include "mydib.h"void rectcoding(HDIB hDIB,int wRect,int hRect){// 指向源图像象素的指针unsigned char * lpSrc;// 指向DIB的指针LPSTR lpDIB;// 指向DIB象素指针LPSTR lpDIBBits;//锁定并获得位图句柄的地址lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);// 判断是否是8-bpp位图(这里为了方便,只处理8-bpp位图的模糊操作,其它的可以类推)if (::DIBNumColors(lpDIB) != 256){// 提示用户::AfxMessageBox ("目前只支持256色位图的运算!");// 返回return;}// 找到DIB图像象素起始位置lpDIBBits = ::FindDIBBits(lpDIB);//图像处理操作//方块编码//获得图像的宽度和高度LONG lWidth=::DIBWidth ((char*)lpDIB);LONG lHeight=::DIBHeight ((char*)lpDIB);// 计算图像每行的字节数LONG lLineBytes = WIDTHBYTES(lWidth * 8);if(lWidth!=lHeight){// 提示用户::AfxMessageBox("只能对宽度和高度相等的图像进行方块编码!");// 返回return;}//编码过程//循环变量LONG i,j,k;int ii,jj;double* Xt=new double [lWidth*lHeight/(hRect*wRect)];int Xi;int* a0=new int [lWidth*lHeight/(hRect*wRect)];int* a1=new int [lWidth*lHeight/(hRect*wRect)];int* N0=new int [lWidth*lHeight/(hRect*wRect)];int* N1=new int [lWidth*lHeight/(hRect*wRect)];//计算阈值k=0;for (i = 0; i < lHeight; i =i+hRect){for (j = 0; j < lWidth; j =j+wRect){Xt[k]=0;//计算Xtfor(ii=0;ii<hRect;ii++)for(jj=0;jj<wRect;jj++){ // 指向图像指针lpSrc = (unsigned char *)lpDIBBits + lLineBytes * (i+ii) + (j+jj);Xi=*lpSrc;Xt[k]+=Xi;}Xt[k]/=hRect*wRect;k++;}}//计算N0、N1k=0;for (i = 0; i < lHeight; i =i+hRect){for (j = 0; j < lWidth; j =j+wRect){N0[k]=0;N1[k]=0;//计算N0、N1for(ii=0;ii<hRect;ii++)for(jj=0;jj<wRect;jj++){ // 指向图像指针lpSrc = (unsigned char *)lpDIBBits + lLineBytes * (i+ii) + (j+jj);Xi=*lpSrc;if(Xi<Xt[k]) N0[k]++;else N1[k]++;}k++;}}//计算a0、a1k=0;for (i = 0; i < lHeight; i =i+hRect){for (j = 0; j < lWidth; j =j+wRect){a0[k]=0;a1[k]=0;//计算N0、N1for(ii=0;ii<hRect;ii++)for(jj=0;jj<wRect;jj++){ // 指向图像指针lpSrc = (unsigned char *)lpDIBBits + lLineBytes * (i+ii) + (j+jj);Xi=*lpSrc;if(Xi<Xt[k]) a0[k]+=Xi;else a1[k]+=Xi;}if(N0[k]!=0&&N1[k]!=0){ a0[k]/=N0[k];a1[k]/=N1[k];}k++;}}//二值化编码过程k=0;for (i = 0; i < lHeight; i =i+hRect){for (j = 0; j < lWidth; j =j+wRect){for(ii=0;ii<hRect;ii++)for(jj=0;jj<wRect;jj++){ // 指向图像指针lpSrc = (unsigned char *)lpDIBBits + lLineBytes * (i+ii) + (j+jj);Xi=*lpSrc;if(Xi<Xt[k]) Xi=a0[k];else Xi=a1[k];//赋新的像素值给像素*lpSrc=Xi;}k++;}}::GlobalUnlock((HGLOBAL) hDIB);}六、实验结果及实验分析处理前二值化后七、个人体会在整个的图像二值化过程中比较经典的二值化方法就是Otsu 算法和Bernsen 算法。
二值化的作用

二值化的作用
二值化是数字图像处理中的一种基本操作,它将图像的每个像素点的灰度值转换为二进制值,即0或1。
这种操作的主要目的是减少图像信息的复杂性,简化图像的处理。
以下是二值化的作用:
1. 去除噪声:在二值化过程中,灰度值低于阈值的像素点会被转换为0,而高于阈值的像素点会被转换为1。
因此,可以利用二值化的方法去除图像中的噪声,提高图像的质量。
2. 增强对比度:二值化可以将图像的灰度值转换为黑白两种颜色,使得图像的对比度更加明显。
这有助于提高图像的清晰度和可读性,特别是在文本识别、图像分割等领域。
3. 提取特征:二值化可以将图像中的目标从背景中分离出来,便于对目标进行检测、识别和跟踪。
例如,在人脸识别中,可以利用二值化将人脸从背景中分离出来,进行特征提取和匹配。
4. 压缩储存:二值化可以将图像中的每个像素点压缩为一个二进制数,从而减少图像的存储空间和传输带宽。
这在数字图像传输和储存中非常有用。
5. 快速处理:二值化可以将图像中的每个像素点转换为一个二进制数,这种简单的操作非常快速。
这在实时图像处理和计算机视觉领域中非常有用。
综上所述,二值化是数字图像处理中非常重要的一种操作,它可以去除噪声、增强对比度、提取特征、压缩储存和快速处理。
在实际应用中,人们会根据需要选择不同的二值化方法和阈值,以达到最佳
的效果。
【数字图像处理】灰度图像二值化

【数字图像处理】灰度图像⼆值化灰度图像每副图像的每个像素对应⼆维空间中⼀个特定的位置,并且有⼀个或者多个与那个点相关的采样值组成数值。
灰度图像,也称为灰阶图像,图像中每个像素可以由0(⿊)到255(⽩)的亮度值(Intensity)表⽰。
0-255之间表⽰不同的灰度级。
灰度图像⼆值化⼆值化:以⼀个值(阈值)为基准,⼤于(等于)这个值的数全部变为是1(或者0),⼩于等于这个数的就全部将他们变为0(或1)。
⼆值化算法处理飞思卡尔赛道思路:设定⼀个阈值valve,对于图像矩阵中的每⼀⾏,从左⾄右⽐较各像素值和阈值的⼤⼩,若像素值⼤于或等于阈值,则判定该像素对应的是⽩⾊赛道;反之,则判定对应的是⿊⾊的⽬标引导线。
记下第⼀次和最后⼀次出现像素值⼩于阈值时的像素点的列号,算出两者的平均值,以此作为该⾏上⽬标引导线的位置。
摄像头的⼆值化的代码:Void image_binaryzation(){for(int i=0;i{for(int j=0;j{if(Image[i][j] >= Threshold)Image_new[i][j]=1;elseImage_new[i][j]=0;}}}Row是对应采集到的⾏数,Col是列数,Image[i][j]是摄像头采集未⼆值化的数据存放的数组,Img[i][j]是新建的存放⼆值化后的数组。
合适的阈值在阈值⼆值化中,最主要的是选取合适的阈值,这也是⼆值化的难点所在。
常⽤的⼆值化阈值选取⽅法有双峰法、p参数法、⼤律法(Otsu法)、最⼤熵阈值法、迭代法等。
⼤律法(Otsu法)Otsu⽅法⼜名最⼤类间差⽅法,通过统计整个图像的直⽅图特性来实现全局阈值T的⾃动选取,其算法步骤为:1) 先计算图像的直⽅图,即将图像所有的像素点按照0~255共256个bin,统计落在每个bin的像素点数量2) 归⼀化直⽅图,也即将每个bin中像素点数量除以总的像素点3) i表⽰分类的阈值,也即⼀个灰度级,从0开始迭代4) 通过归⼀化的直⽅图,统计0~i 灰度级的像素(假设像素值在此范围的像素叫做前景像素) 所占整幅图像的⽐例w0,并统计前景像素的平均灰度u0;统计i~255灰度级的像素(假设像素值在此范围的像素叫做背景像素) 所占整幅图像的⽐例w1,并统计背5) 计算前景像素和背景像素的⽅差 g = w0*w1*(u0-u1) (u0-u1)6) i++;转到4),直到i为256时结束迭代7)将最⼤g相应的i值作为图像的全局阈值缺陷:OSTU算法在处理光照不均匀的图像的时候,效果会明显不好,因为利⽤的是全局像素信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古科技大学本科毕业论文二〇一二年四月摘要本文介绍了图像及数字图像处理技术的一些概念和相关知识;还介绍了灰度图像和图像二值化的概念及其表示形式;对图像灰度化和图像二值化的优缺点作了简单的的介绍;重点介绍了灰度图像的二值化方法研究,其包括的内容有二值化研究动态和研究方法;对全局阈值法;局部阈值法这两种方法进行了研究讨论。
关键字:图像处理、二值化、图像、阈值AbstractThis paper introduces the image and digital image processing technology of some concepts and related knowledge; also introduced the gray-scale image and the images of the two values of the concept and its representation; grayscale images and images of the two values of the advantages and disadvantages to make simple introduction; mainly introduces two gray image binarization method, its includes the contents of two values of research and research methods; the global threshold method; local threshold method, the two methods are discussed. Keywords:image processing, image, threshold value of two,目录引言 (5)1.灰度图像与二值图像 (6)1.1图像 (6)1.2数字图像 (6)1.2.1彩色图像 (6)1.2.2灰度图像 (7)1.2.3二值图像 (7)2.灰度图像二值化方法研究 (8)2.1全局阈值法 (8)2.1.1全局阈值法的概念 (8)2.1.2全局阈值法的方法 (9)2.1.3全局阈值法的优缺点介绍及阈值选取 (11)2.2局部阈值法 (11)2.2.1局部阈值法的概念 (11)2.2.2局部阈值法的方法 (12)2.2.3局部阈值法的优缺点介绍 (12)3.灰度图像二值化的应用 (12)结束语 (14)参考文献 (15)致谢 (16)引言图像二值化是图像处理中的一项基本技术,也是很多图像处理技术的预处理过程。
在颗粒分析、模式识别技术、光学字符识别(OCR)、医学数据可视化中的切片配准等应用中,图像二值化是它们进行数据预处理的重要技术。
由于图像二值化过程将会损失原图像的许多有用信息,因此在进行二值化预处理过程中,能否保留原图的主要特征非常关键。
在不同的应用中,图像二值化时阈值的选择是不同的。
因此,自适应图像阈值的选取方法非常值得研究。
研究者对图像二值化方法进行了讨论,在此基础上提出了一个新的图像二值化算法。
该算法基于数学形态学理论,较好地保留了图像二值化时原图的边缘特征。
本文主要研究二值化及灰度图像二值化方法。
1.灰度图像与二值图像1.1图像图像就是用各种观测系统观测客观世界获得的且可以直接或间接作用于人眼而产生视觉的实体。
图像存在方式多种多样,可以是可视的或者非可视的,抽象的或者实际的,适于计算机处理的和不适于计算机处理的。
但就其本质来说,可以将图像分为模拟图像和数字图像。
1.2数字图像数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵图像。
在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。
因此,数字图像实际上就是被量化的二维采样数组。
一幅数字图像都是由若干个数据点组成的,每个数据点称为像素(pixel)。
比如一幅256×400,就是指该图像是由水平方向上256列像素和垂直方向上400行像素组成的矩形图。
每一个像素具有自己的属性,如颜色(color)、灰度(grayscale)等,颜色和灰度是决定一幅图像表现里的关键因素。
数字图像又可分为彩色图像、灰度图像、二值图像。
1.2.1彩色图像彩色图像是多光谱图像的一种特殊情况,对应于人类视觉的三基色即红(R)、绿(G)、蓝(B)三个波段,是对人眼的光谱量化性质的近似。
彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万的颜色的变化范围。
而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,一个像素点的变化范围为255种。
图1-1为彩色图像。
图1-11.2.2灰度图像灰度图像是指只含亮度信息,不含色彩信息的图像。
单纯的看,灰度图也是黑白的,就像黑白电视显示的图像一样,但是点与点之间黑的程度是不一样的、这就是深度。
如果称不同深度的颜色为一色的话,灰度图像就不止只有黑色和白色两种颜色,一般使用的灰度图为256级灰度图,就是说图像由256种不同灰度级的颜色组成。
图像灰度化的效果如图1-2。
图1-2灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其一个像素点的变化范围为255种。
YUV是编译颜色空间的种类,“Y”表示明亮度“U”表示色度“V”表示浓度,根据YUV的颜色空间,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B (1-1)以这个亮度值表达图像的灰度值。
1.2.3二值图像二值图像就是指只有两个灰度级的图像,二值图像具有存储空间小,处理速度快,可以方便地对图像进行布尔逻辑运算等特点。
更重要的是,在二值图像的基础上,还可以进一步对图像处理,获得该图像的一些几何特征或者其他更多特征。
在图像相关方面,用二值图像进行相关比用灰度级图像进行相关有更好的相关性能和去噪作用。
在用硬件实现时可避免乘法运算,从而提高硬件系统的速度和降低成本。
在图像的符号匹配方面,二值图像比灰度级图像更适合于用符号来表达。
二值图既保留了原始图像的主要特征,又使信息量得到了极大的压缩。
图1-3为二值图像。
图1-32.灰度图像二值化方法研究图像二值化是图像处理中的一项基本技术,也是很多图像处理技术的预处理过程。
图像的预处理在进行图像二值化操作前要对图像进行预处理,包括彩色图像灰化和增强。
由于选取阈值需要参照直方图,因此在图像进行处理后,我们再获取图像的直方图以帮助选取阈值。
整个流程如下所示:读取图像→灰度图像→图像增强→图像直方图→二值化处理图像二值化是图像数据预处理的重要技术,如果二值化过程中阈值选取不当会损失原图像的许多有用信息。
图像二值化处理的方法包括全局阈值法、局部阈值法。
2.1全局阈值法2.1.1全局阈值法的概念全局阈值法是指在二值化过程中只使用一个全局阈值T的方法。
它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则,取为背景色。
根据文本图像的直方图或灰度空间分布确定一个阈值,以此实现灰度文本图像到二值图像的转化,其中全局阈值法又可分为基于点的阈值法和基于区域的阈值法。
阈值分割法的结果很大程度上依赖于对阈值的选择,因此该方法的关键是如何选择合适的阈值。
选择不同的初始灰度也会产生不一样的二值化图像,图2—1 所示3 幅图像则是分别采取T=109,T=127,T=155 三种初始值对Lena 进行基本全局门限二值化后的图像。
可以看出效果都不一样。
因此要获得最佳效果,必须要考虑选择一个好的初始T 值。
另外使用迭代法虽然能得到很精确的阈值,但是也占用了大量的时间,即时间复杂度比较高,效率较其他算法低。
图2—12.1.2全局阈值法的方法典型的全局阈值法包括Otsu 方法、最大熵方法等。
全局阈值法算法简单,对于目标和背景明显分离、直方图分布呈双峰的图像效果良好,但对于由于光照不均匀、噪声干扰较大等原因使直方图分布不呈双峰的图像,二值化效果明显变差。
下面重点介绍Otsu 方法:Otsu 方法是一种全局化的动态二值化方法,又叫大津法,还称为最大类间差发,是基于整幅图像的统计征,实现阈值的自动选取。
其原理是把图像直方图用某一灰度值分割成两类,分别计算这两类的像素点数和灰度平均值,然后计算它们的类间方差。
当被分割成的两类间方差最大时,此灰度值就作为图像二值化处理的阈值。
大津法的使用范围比较广,不论图像的直方图有无明显的双峰,都能得到较满意的结果,在很多领域得到了应用和发展。
对图像Image ,记t 为目标与背景的分割阈值,目标像素数占图像比例为0ω,平均灰度为0μ;背景像素数占图像比例为1ω,平均灰度为1μ。
图像的总平均灰度为:)()()()(1100t t t t μωμωμ+=。
从最小灰度值到最大灰度值遍历t ,当t 使得值211200)()(μμωμμω-+-=g 最大时t 即为分割的最佳阈值。
对大津法可作如下理解:该式实际上就是类间方差值,阈值t 分割出的目标和背景两部分构成了整幅图像,而目标取值0μ,概率为 0ω,背景取值1μ,概率为1ω,总均值为μ,根据方差的定义即得该式。
因方差是灰度分布均匀性的一种度量,方差值越大说明构成图像的两部分差别越大,当部分目标点错分为背景或部分背景点错分为目标点都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。
记),(j i f 为M N ⨯图像),(j i 点处的灰度值,灰度级为μ,不妨假设),(j i f 取值]1,0[-m 。
记)(k p 为灰度值为k 的频率,则有: ∑==k j i f MN k p ),(11)( (2-1)假设用灰度值t 为阈值分割出的目标与背景分别为:}),({t j i f ≤和}),({t j i f >,于是目标部分比例:∑≤≤=t i i p t 00)()(ω, (2-2)目标部分点数:∑≤≤=ti i p MN t N 00)( )( (2-3)背景部分比例:∑-≤<=11)()(m i t i p t ω (2-4)背景部分点数:∑-≤<=11)()(m i t i P MNt N (2-5) 目标均值:∑≤≤=ti t i ip t 000)(/)()(ωμ (2-6) 背景均值:∑-≤<=111)(/)()(m i t t i ip t ωμ (2-7)总均值:)()()()(1100t t t t μωμωμ+= (2-8) 大津法指出求图像最佳阈值g 的公式为:]))(()())(()([ 2112001-m t 0μμωμμω-+-=≤≤t t t t Max Arg g (2-9) 该式右边括号内实际上就是类间方差值,阈值g 分割出的目标和背景两部分构成了整幅图像,而目标值)(0t μ,概率为)(1t ω,背景取值)(1t μ,概率为)(0t ω,总均值为μ,根据方差的定义即得该式。