的。如采样和量化不能满足上述假定,系统的性能将受到显著的影响。因此不恰当的数据获取能力将会危机问题的成功解决。
2) 需要高质量的设备。如果系统噪声水平足以使图像退化,处理将很难成功。 3) 图像分析需要高质量的图像数字化设备,图像处理则还需要高质量的图像显示设备。 4) 当面向通用处理时,软件系统应允许用简单且逻辑性强的方式通过菜单选择进行处理和分析。输入/输出图像和库程序的方便和快速访问也是一个实际应用中的要求。
5)图像处理库应保持起丰富性。如果现有的程序可用旧问题或新问题采取新的处理方法而不需要重编程序,则系统的能力会大大增强。
6)程序库应具有可扩展性,可以方便地加入新的程序模块,从而使系统能力不断增强。
2.3 图像处理的举例
2.3.1 图像数据读取
首先要从一个BMP文件中读取图像信息,并把图像显示在视图区。BMP文件有两种显示方式,一种将BMP文件读成DIB格式(设备相关型的位图格式),当显示时,一种是直接将DIB显示,另一种是将DIB转化为DDB(设备无关型位图格式),再显示DDB。其中,DDB存在很严重的问题,DDB中没有保存位图的调色板,这就造成了一个使用的前提——位图必须在同类设备中显示,并且此设备在位平面或彩色上与原设备有同样的彩色安排,否则色彩可能完全失真。但是,DIB就是BMP文件去掉BITMAPFILEHEADER(文件头),因此把BMP读入到DIB数据结构中再显示十分方便。只要读入BITMAPINFO结构和图像数据即可。并且DIB的显示方法可以调用SetDIBitsToDevice函数。直接将DIB位图的图像输出到设备,用于显示DIB。因此在本系统中,直接将BMP显示为DIB位图形式。而且,在本系统中要读取的不止一幅图片,所以要设置不同图片(如背景,前景)的显示区域,同时还要注意及时释放无用的文件句柄,避免内存泄漏。图片数据读取有两种情况,第一种情况是在进行背景提取的时候读取图片,第二种情况是在进行运动物体判定的时候读取图片。得到每行象素所占用字节数的函数BytePerLine。得到像素点数据在整个数据区中偏移的函数Pixeloffset。图片颜色数据读取的函数ReadDIBFile[3]。数据读入到内存后的显示界面如图2-3-1所示。
图2-3-1 图像的读取
2.3.2 图像的中值滤波
图像在拍摄、扫描或者传输过程中总会添加一些噪声,这样就影响了图像的质量,需要除去这些噪声提高图像的质量便于以后的图像处理,所以需要实现图像的平滑。中值滤波是一种局部平均去噪声的平滑操作。所谓局部平滑法就是一种直接在空域上进行平滑处理的技术。认为图像是由许多恒定的小块组成,相邻像素间存在很高的空间相关性,而噪声则是相对独立的。因此,可用像素邻域内的像素平均灰度值代替该像素原来的灰度值,实现图像平滑。那中值滤波它就是把跟当前处理的像素点相关的像素点的数值进行排序,然后把中间数值赋给当前处理点。它对脉冲干扰和椒盐的抑制效果好。同时图像的平滑可采用多种滤波方法,比如低通滤波,高斯滤波等。值得一提的是,中指滤波实现的图像平滑不会破坏图像的边缘信息。这对要进行的边缘提取的操作是十分必要的[4]。
中值滤波也是一种非线性的图像平滑方法,它对一个滑动窗口内的诸像素灰度值排序,用其中值代替窗口中心像素的原来灰度值。中心像素的灰度就是灰度最大的那个对于离散的脉冲信号,当其连续出现的次数小于窗口尺寸的一半时,将被抑制掉,否则将不受影响。所以,在进行中值滤波的时候要先使用尺寸较小的窗口在选用大的窗口。在本系统中,采用的是3*3的滤波模板。但是在其他相关应用中,可以根据需要设定相应的滤波模板对图像进行平滑处理。中值滤波的实现函数是MedianFilterDIB,在数组中找到中间值的功能函数MedianSearch。
2.3.3 图像灰度化
图像灰度化的过程就是彩色图像转换为黑白图像的过程,因为灰度图像比彩色图像更加容易进行运算,所以经常要把彩色图像转换成灰度图像。这个转换没有确定的标准,一般来说,都是根据原来的图片中的RGB3个分量以及它们的权重来求取的。本系统中对3个分量是按照0.39、0.50、0.1的权重来分配的。四级灰度等级系统的亮度码
亮度码 帧缓冲器中储存值 显示灰度级 0.0 0(00) 黑 0.33 1(01) 暗灰 0.67 2(10) 亮灰 1.0 3(11) 白 灰度化处理后的效果图如图2-3-2所示。
图2-3-2 图像的灰度化
2.3.4图像二值化
图像的二值化就是图像显示的时候只能看到两种颜色(经常是黑白两色),二值图像也就是只具有两个灰度级的图像,它是数字图像的一个重要子集。一个二值化图像(例如一个剪影或一个轮廓图)通常是由一个图像分割操作产生的。也就是图像的二值化,一般都是在实现了图像的灰度操作之后进行的。二值化的具体方法有很多,比较常用的是阀值判定法。给定一个数值,当灰度图像中像素点的亮度值小于这个数值时,把像素点设置成为黑色(可
以是其他颜色),而当图像中像素点的亮度值大于这个数值时,把像素点设置成为白色(可以是其他颜色)。阀值的选择有自动阀值选取法和手动阀值选取法。自动阀值选取法,是先对灰度图像进行扫描,根据得到图像中点的亮度情况,自动地设定一个阀值。比如说,想使图像中70%的点的颜色是黑色的,那么这个阀值就应该取整个图像中所有像素亮度值排序中的70%位置上的亮度值。手动阀值设定比较简单,就是人为的设定一个阀值,一般来说,它要求在设定之前对整个图像的亮度有大致地了解[5]。图4.10二值化后得
图2-3-3 图像的二值化 2.3.4图像细化
图像的细化是使粗的物体变细,同时保留了原来物体的轮廓特征。细化将一个曲线物 体细化成为一条单像素宽的线,从而图形化地显示出其拓扑性质。图像的细化属于图形学的内容,它是骨架提取的一种方法,经常用在轮廓里面。抽骨架也称为中轴变换或焚烧草地技术。中轴是所有与物体在两个或更多非邻域边界点处相切的圆心的轨迹。但抽骨架很少通过在物体内拟合圆来实现。图像细化的算法也很多,根据不同的情况,可以选择不同的细化方法。在本系统中,使用的是查表的细化算法,即8-邻域细化中有代表性的希尔迪奇方法。具体来说就事先设定一个二值化的表格,里面的数值表示该点能不能被细化掉,然后进行像素点周围的八方向扫描,查看八个方向上点的颜色情况,最后根据八个点的情况计算,得到一个索引值,利用这个索引值查看表格中的数值,最后确定当前像素是否应该被细化掉。原来图像的轮廓变细了[6],细化后的图像效果如图4.13所示。
2.4图像处理的应用
计算机图像处理和计算机、多媒体、智能机器人、专家系统等技术的发展紧密相关。今年来计算机识别、理解图像的技术发展很快,也就是图像处理的目的除了直接供人观看(如医学图像是为医生观看作诊断)外,还进行一步发展了与计算机视觉有关的应用,如邮件自动分检,车辆自动驾驶等。下面仅罗列了一些典型应用实例,而实际应用更广[7]。
(1)在生物医学中的应用
主要包括显微镜图像处理;DNA显示分析;红、白血球分析计数;虫卵及组织切片的分析;癌细胞识别;染色体分析;心血管数字减影及其他减影技术;内脏大小形状及异常检测;心脏活动的动态分析;热像、红外像分析;X光照片增强、冻结及伪彩色增强;超声图像成像、增强、冻结及伪彩色处理等。
(2)遥感航天中的应用
军事侦察、定位、导航、指挥等应用;多谱卫星图像分析;地形、地图、国土普查;地质、矿藏勘探;森林资源探查、分类、防火;水利资源探查,洪水泛滥监测;海洋、渔业方面如温度、鱼群的监测、预报;农业方面如谷物估产、病虫害调查;自然灾害、环境污染的监测;气象、天气预报图的合成分析预报;天文、太空星体的探测及分析;交通、空中管理、铁路选线等。
(3)军事公安领域中的应用
巡航导弹地形识别;指纹自动识别;罪犯脸形的合成;侧视雷达的地形侦察;遥控飞行器RPV的引导;目标的识别与制导;警戒系统及自动火炮控制;反伪装侦察;手迹、人像、印章的鉴定识别;过期档案文字的复原;集装箱的不开箱检查等。
(4)其他应用
图像的远距离通信;多媒体计算机系统及应用;电视电话;服装试穿显示;理发发型预测显示;电视会议;办公自动化、现场视频管理等。