版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字图像处理DigitalImageProcessing目录1.概论2.数字图像处理基础3.图像增强4.图像的几何变换5.频域处理6.数学形态学基础7.图像分割8.图像特征与理解第一章概论1.数字图像处理及其特点2.图像处理的主要目的及主要内容3.数字图像处理的应用4.数字图像处理的发展动向5.图像处理/计算机视觉领域会议和期刊(补充)1.1数字图像处理及其特点1.计算机视觉/机器视觉:用计算机实现人眼的功能。
2.数字图像处理:用于处理数字图像的一些方法,例如,图像增强或图像分割,是进行图像分析的一个重要前期处理阶段。
3.模拟图像空间坐标和颜色范围都是连续的,传统的图像都是模拟的。数字图像胶卷成像255255255255255…25500002552552552552552552552552552552552552552552551.1数字图像处理及其特点一幅数字图像从真实世界中获取数字图像有很多方法,比如数码相机、扫描仪、CT或者磁共振成像。无论哪种方法,我们(人类)看到的是图像,而让数字设备来“看“的时候,则是在记录图像中的每一个点的数值。255255255255255…2550000255255255255255255255255255255255255255255255255255255255255…255255255255255255255255255255255255255255255255255255255255RGB图像都可以简化为数组以及矩阵,数字图像处理主要目的就是通过处理和操作这些信息,来获取更高级的信息。1.1数字图像处理及其特点
数字图像是指以数字格式存放的图像。对于二维灰度图像,通常用一个二维数组来描述f(x,y),x和y表示图像中点的位置,f则代表图像在该点的值,一般是指亮度或颜色。数字图像中的每个元素,称为像素(pixel)。存储每个像素所需的二进制位数称为颜色深度。通常灰度图像的颜色深度为8位。数字图像(DigitalImage)1.2.1图像处理的主要目的1.提高图像的视感质量,以达到赏心悦目的目的。
2.提取图像中所包含的某些特征或特征信息,用于模式识别或计算机视觉的预处理。
3.对图像数据进行变换,编码和压缩,以便于图像的存储和传输。1.2.1图像处理的主要目的图像增强(磨皮效果),提高视觉效果Download:http:///Imageshop/p/4679065.html
1.2图像处理的主要目的前向运动去模糊(ICCV13).hk/~leojia/projects/forwarddeblur/index.html1.2图像处理的主要目的从图像中提取梯度特征(HistogramofOrientedGradient),广泛应用于行人检测。1.2.1图像处理的主要目的BMP格式未压缩:2240KB压缩成JPEG格式:189KB压缩比高达:1-189/2240=92%1.2.2数字图像处理的主要内容1.图像获取、表示和表现2.图像复原3.图像增强
4.图像分割
5.图像分析
6.图像重建
7.图像压缩和编码1.2.2数字图像处理的主要内容图像获取、表示和表现把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像显示和表现出来(如打印)。主要包括摄取图像、光电转换及数字化等几个步骤。1.2.2数字图像处理的主要内容图像复原(ImageRestoration)当造成图像退化(图像品质下降)的原因已知时,用复原技术可以对图像进行校正。图像复原最关键的是对每种退化均需要有一个合理的模型。1.2.2数字图像处理的主要内容图像增强用于改善图像视感质量所采取的一种方法。
图像分割把图像分成区域的过程即图像分割。图像中通常包含多个对象。为达到识别和理解的目的,必须按照一定的规则将图像分割成区域,每个区域代表被成像的一个物体(或部分)。1.2.2数字图像处理的主要内容图像分析图像处理应用的目标几乎均涉及到图像分析,即对图像中的不同对象进行分割、特征提取和表示,从而有利于计算机对图像进行分类、识别和理解。图像重建图像重建是从数据到图像的处理。CT是图像重建处理的典型应用实例。目前,图像重建与计算机图形学相结合,把多个二维图像合成为三维图像,并加以光照模型和各种渲染技术,能生成各种具有强烈真实感的高质量图像。1.2.2数字图像处理的主要内容图像压缩编码实际应用中,必须进行图像压缩,以减少图像数据量,便于图像的存储和传输,并节约成本。1.3图像处理的主要应用WillardBoyle乔治·史密斯1969年,史密斯和博伊尔共同发明了CCD图像传感器。来自:/view/1262084.htm2009年,他们获得诺贝尔物理奖。图像处理发展历史1.3.1CCD(ChargeCoupledDevice)WillardBoyle1.3.1CCD(ChargeCoupledDevice)目前智能手机也配备了高分辨率的摄像头。图为MotorolaMT810lx手机配置双LED闪光灯和一枚500万像素的自动对焦摄像头。1.3.1CCD(ChargeCoupledDevice)1.3.1CCD(ChargeCoupledDevice)摄像单元:CCD图像(光电)传感器工作原理是:将光能量转换为电荷,并将转换得到的电荷进行存储。CCD传感器分为线阵式和阵列式两种,具有代表性的产品分别有扫描仪和数码相机。1.3.2图像处理的主要应用1.通信:图像传输、电视电话、电视会议
2.宇宙探测3.遥感
4.生物医学领域
5.工农业生产
6.军事、公安等
7.机器视觉
8.视频和多媒体系统9.科学可视化
10.电子商务11.社交应用
12.嵌入式应用1.3.2图像处理的主要应用1.通信:QQ视频,网络直播,体育赛事直播体育赛事直播QQ娱乐直播1.3.2图像处理的主要应用2.宇宙探测1.3.2图像处理的主要应用3.遥感1.3.2图像处理的主要应用4.生物医学领域1.3.2图像处理的主要应用5.工农业生产:产品质量无损检测,如食品,水果,印刷品,焊缝质量和表面缺陷等。1.3.2图像处理的主要应用6.军事、公安1.3.2图像处理的主要应用7.机器视觉药品封盖不良检测智能机器人1.3.2图像处理的主要应用KaimingHe,JianSunandXiaoouTang,SingleImageHazeRemovalUsingDarkChannelPrior(CVPR2009Bestpaper)
更多应用:图像去雾1.3.2图像处理的主要应用图像去雾图像检索/百度图像检索服务1.3.2图像处理的主要应用1.3.2图像处理的主要应用三维重建目标跟踪1.3.2图像处理的主要应用
嫦娥一号探月卫星发回的照片我国神舟七号飞船的实时图像传输系统1.3.2图像处理的主要应用M.BrownandD.G.Lowe.RecognisingPanoramas.ICCV20031.3.2图像处理的主要应用图像拼接1.4数字图像处理的发展动向
需进一步研究的问题:
1.提高精度的同时,着重解决处理速度问题
2.加强软件研究、开发新的处理方法,借鉴其它学科的研究成果
3.加强边缘学科的研究工作,促进图像处理技术的发展。
4.加强理论研究,逐步形成图像处理科学自身的理论体系。
5.图像处理领域的标准化。1.4数字图像处理的发展动向
未来大致发展:1.围绕HDTV(高清晰电视)的研制,开展实时图像处理的理论及技术研究。提高精度的同时,着重解决处理速度问题。2.图像、图形相结合,朝着三维成像或多维成像的方向发展。3.硬件芯片研究。4.新理论与新算法研究。1.4数字图像处理的发展动向
最近的新趋势:自从深度学习(DeepLearning)技术2012年在物体分类领域的突破性进展,极大推动了计算机视觉从理论走向应用。当前,随着深度学习在各个领域取得了突破性的进展,许多计算机视觉公司纷纷成立,有力的推动科研与应用的深度结合。1.4数字图像处理的发展动向
最近的新趋势:国内有两个重要的学术论坛和一个重要学术会议:VALSE(VisionandLearningSEminar)RACV(ResearchandChallengeonComputerVision)PRCV(PatternRecognitionandComputerVision),由CCCV和CCPR合并而成。1.4数字图像处理的发展动向CCCV2017赞助商1.4数字图像处理的发展动向VLASE2017赞助商1.5图像处理/计算机视觉领域会议和期刊计算机视觉与图象处理国际会议:A类ICCV,CVPR,ECCV,B类:ICPR,ICIP,ACCV国际期刊:
InternationalJournalofComputerVision(IJCV),IEEETPatternAnalysisandMachineIntelligence(TPAMI)IEEETImageProcessing(TIP),IEEETCircuitsandSystemsforVideoTechnology(CSVT)PatternRecognition(PR),ComputerVisionandImageUnderstanding(CVIU),ImageandVisionComputing(IVC),PatternRecognitionLetters(PRL),IETComputerVisionNeurocomputingNeuralComputing&Applications(NCA)InternationalJournalofPatternRecognitionandArtificialIntelligence(IJPRAI)本章小结&思考数字图像处理(计算机视觉)的基本概念图像处理的基本应用数字图像处理DigitalImageProcessing目录1.概论2.数字图像处理基础3.图像增强4.图像的几何变换5.频域处理6.数学形态学基础7.图像分割8.图像特征与理解第二章数字图像处理基础1.图像数字化技术2.色度学基础与颜色模型3.数字图像类型4.图像文件格式5.OpenCV编程简介2.1图像数字化技术图像的数字化包括采样和量化两部分。自然场景可用连续函数f(x,y)表示,其在空间坐标(自变量)和颜色值(因变量)都是连续的。为了在计算机上能够进行存储,须同时将空间坐标进行和颜色值进行离散化,这一过程称为数字化。空间坐标数字化的过程称为采样。颜色值数字化的过程称为量化。2.1图像数字化技术成像系统场景:模拟图像成像平面数字化结果数字化过程示意图2.1.1采样
采样是将在空间上连续的图像转换成离散的采样点(即像素)集的操作。由于图像是二维分布的信息,所以采样是在x轴和y轴两个方向上进行。采样示意图2.1.2量化(Sampling,Quantization)
量化:取样后图像的每个样点的取值范围分成若干区间,并仅用一个数值代表每个区间中的所有取值。量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。连续灰度值量化值(整数值)
灰度标度
灰度量化
(a)量化
(b)量化为8bit
量化示意图2.1.3采样与量化参数的选择一幅图像在采样时,行、列的采样点与量化时每个像素量化的级数,既影响数字图像的质量,也影响到数据量的大小。
假定图像取M×N个样点,每个像素量化后的灰度二进制位数为Q,一般Q总是取为2的整数幂,即Q=2k,则存储一幅数字图像所需的二进制位数b为:b=M×N×Q字节数为:B=(M×N×Q)/8(Byte)2.1.3采样与量化参数的选择不同采样点数对图像质量的影响2.1.3采样与量化参数的选择不同量化级数对图像质量的影响2.1.4图像数字化设备将模拟图像数字化为数字图像,目前主要有数码相机、扫描仪、数字化仪等设备。数码相机手机扫描仪医学成像人造卫星无人机2.1.4图像数字化设备图像数字化设备的组成(1)采样孔(2)图像扫描机构(3)光传感器(4)量化器(5)输出存储装置数字化设备性能(1)像素大小(2)量化位数(3)图像大小(4)线性度(5)噪声2.2色度学基础与颜色模型颜色是通过眼、脑和生活经验所产生的一种对光的视觉效应,对色彩的辨认是肉眼受到电磁波辐射能刺激后所引起的一种视觉神经的感觉。可见光:电磁波谱中波长约在0.39~0.76μm范围内且为肉眼可见的电磁辐射。2.2.1色度学基础多光谱图像f(x,y,λ),计算机显示一幅彩色图像时,每一个像素的颜色是通过3种基本颜色(即红、绿、蓝)合成的,即最常见的RGB颜色模型。根据三原色学说,可见光谱内任何颜色都可由红、绿、蓝三色组成。生理学试验表明,视网膜上的光感受器可分锥细胞(conecell)和杆细胞(rodcell)。杆细胞锥细胞2.2.1色度学基础人类感光细胞的敏感曲线Red:700nm,Green:546.1nm,Blue:435.8nm2.2.1色度学基础颜色的三个属性颜色是外界光刺激于人的视觉器官而产生的主观感觉。颜色可分两大类:非彩色和彩色。非彩色:黑白色彩色:根据人的视觉系统感知彩色的方式,颜色有三个基本属性,分别是色调、饱和度、亮度。色调:人的感官对不同颜色的感受,如红色、绿色和蓝色。饱和度:颜色的纯度,饱和度越大,颜色看起来就会越鲜艳。强度:对应成像亮度和图像灰度,是颜色的明亮程度。2.2.2颜色模型按用途可分为三类(1)计算颜色模型用于进行颜色的理论研究。常见的RGB模型、CIEXYZ模型、Lab模型等均属于此类型。(2)视觉颜色模型是指与人眼对颜色感知的视觉模型相似的模型,它主要用于色彩的理解,常见的有HSI模型、HSV模型和HSL模型。(3)工业颜色模型侧重于实际应用,包括彩色显示系统、彩色传输系统及电视传输系统等。如印刷中用的CMYK模型、电视系统用YUV模型、用于彩色图像压缩的YCbCr模型等。2.2.2颜色模型
RGB颜色模型按照CIE规定的三基色构成表色系统。自然界的任一种颜色都可通过这三种基色按不同比例混合而成。由于RGB模型将三基色同时加入以产生新的颜色,所以,它是一个加色系统。RGB(Red,Green,Blue)R:200G:50B:1202.2.2颜色模型
RGB颜色模型的优点(1)RGB模型与显示器等设备有着较好的对应关系。(2)在RGB显示器中,有三种荧光粉能够分别发出红、绿、蓝三种颜色,三个相邻的荧光点构成了一个像素,这些荧光点受到三束分别为c1,c2,c3的电子束的轰击,会发出不同的亮度,通过物理上的叠加或混合,便可显示出相应的颜色。2.2.2颜色模型
Lab颜色模型Lab颜色模型由三个要素组成,一个要素是亮度(L),a和b是两个颜色通道。a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(低亮度值)到灰色(中亮度值)再到黄色(高亮度值)。因此,这种颜色混合后将产生具有明亮效果的色彩。2.2.2颜色模型
HSI颜色模型色调H(Hue):与光波的波长有关,它表示人的感官对不同颜色的感受,如红色、绿色、蓝色等,饱和度(Saturation):表示颜色的纯度,纯光谱色是完合饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会鲜艳,反之亦然。强度I(Intensity):对应成像亮度和图像灰度,是颜色的明亮程度。HSI模型建立基于两个重要的事实:(1)I分量与图像的彩色信息无关;(2)H和S分量与人感受颜色的方式是紧密相联的。这些特点使得HSI模型非常适合彩色特性检测与分析。2.2.2颜色模型
HSI颜色模型RGB颜色模型转换为HSI颜色模型的公式见教材22页HSI色立体圆柱HSI模型2.2.2颜色模型
CMY模型和CMYK模型CMY模型是硬拷贝设备上输出图像的颜色模型,常用于彩色打印、印刷行业。它的三原色是青(Cyan)、品红(Magenta)、黄(Yellow),分别为红、绿、蓝的补色,称为减色基。在CMY中,颜色是从白光中减去一定成分得到的,而不是像素RGB颜色模型那样,在黑光中增加某种颜色。CMY坐标可以从RGB模型中得到:2.2.2颜色模型
CMY模型和CMYK模型由于在印刷时CMY模型不可能产生真正的黑色,因此在印刷业中实际上使用的是CMYK颜色模型,K为第四种颜色,表示黑色。用以弥补三个颜色混合不够黑的问题。2.2.2颜色模型
YCbCr模型YCbCr模型充分考虑人眼视觉特性,以降低彩色数字图像存储量,是一种适合于彩色图像压缩的模型。YCbCr模型与YUV模型一样,由亮度Y、色差Cb、色差Cr构成。与YUV模型的不同是,在构造色差信号时,充分考虑了RGB3个分量在视觉感受中的不同重要性。2.2.3颜色变换对彩色图像进行颜色变换,可实现对彩色图像的增强处理,改善其视觉效果,为进一步处理奠定基础。基本变换颜色变换模型为:g(x,y)=T[f(x,y)]式中:f(x,y)是彩色输入图像,其值为一般为向量;
g(x,y)是变换或处理后的彩色图像,与f(x,y)同维;
T是在空间域上对f的操作。T对图像颜色的操作有多种方式;2.2.3颜色变换基本变换式中:ri、si为f(x,y)和g(x,y)在图像中任一点的彩色分量值;{T1,T2,…,Tn}为变换函数集。n的值由颜色模型而定,若选择RGB模型,则n=3;r1、r2、r3分别表示输入图像的红、绿、蓝分量;选择CMYK模型,则n=4。(a)原图像
(b)HSI模型
(c)RGB模型
彩色图像直方图均衡化处理效果2.2.3颜色变换彩色切片彩色切片是通过识别图像中感兴趣的颜色,然后将其作为一个整体从图像中分离出来。彩色切片效果(a)原图像(b)提取黄色2.3数字图像类型
矢量(Vector)图和位图(Bitmap),位图也称为栅格图像。矢量图是用数学(准确地说是几何学)公式描述一幅图像。(计算机图形学)优点:一是它的文件数据量很小,因为存储的是其数学公式;其二是图像质量与分辨率无关,这意味着无论将图像放大或缩小了多少次,图像总是以显示设备允许的最大清晰度显示。缺点,就是不易制作色调丰富或色彩变化太多的图像,而且绘制出来的图像不是很逼真,同时也不易在不同的软件间交换文件。在CorelDraw和AdobeIllustrator中生成的图像均为矢量图。2.3数字图像类型
位图是由许多像素点来表示一幅图像。每个像素具有颜色属性和位置属性。线画稿:黑白二色2.3数字图像类型位图是由许多像素点来表示一幅图像。每个像素具有颜色属性和位置属性灰度图像:灰度图像像素的灰度级用8bit表示,每个像素都是介于黑、白之间的256(28=256)种灰度中的一种。2.3数字图像类型真彩色图像:真彩色图像中,每一个像素由红、绿和蓝3个字节组成,每个字节为8bit,表示0到255之间的不同的亮度值,这3个字节组合,可以产生1670万种不同的颜色。2.3数字图像类型索引图像:在这种模式下,预先定义好每种颜色,且可供选用的一组颜色数最多为256种。2.3数字图像类型多(高)光谱图像:每一个像素点的值是一个多维向量,是该点在多个波段的反射值。http:///83751595.html高光谱相机多光谱相机2.3数字图像类型位图有关术语(1)像素点(Pixel)、点Dot和样点(Sample)
像素:图像的每个点称为Pixel
样点:数字化设备从源图像中每英寸取多少个样点,dpi(dotperinch)
点:从样点区域中选一个点作为该样点的颜色值(2)分辨率
图像分辨率
屏幕分辨率
打印机分辨率
扫描仪分辨率2.4图像文件格式
数字图像有多种存储格式,每种格式一般由不同的软件公司开发所支持。文件一般包含文件头和图像数据。就像每本书都有封面,目录,它们的作用类似于文件头,通过文件头我们可读取图像数据。文件头的内容由该图像文件的公司决定,一般包括文件类型、文件制作者、制作时间、版本号、文件大小等内容,还有压缩方式。常见的图像(视频)文件格式2.4.1BMP图像文件格式
BMP图像文件的结构可以分为如下三个部分:(1)文件头(由位图文件和位图信息头两部分组成),(2)调色板数据,(3)图像数据。BMP文件头的长度为固定值54个字节,其中Bitmapfileheader结构14字节Bitmapinfoheader结构40字节2.4.1BMP图像文件格式BMP图像文件结构2.4.1BMP图像文件格式
BITMAPFILEHEADER包含文件类型和大小等信息,定义为:typedefstructtagBITMAPFILEHEADER{ WORD bfType; /*代表BMP格式,必为“BM”即“0x4d42”*/ DWORDbfSize; /*BMP文件总字节数*/ WORDbfReserved1; /*预留,必为0*/ WORDbfReserved2; /*预留,必为0*/
DWORDbfOffBits; /*以字节为单位,表示图像数据在文件内的起始地址,即图像数据针对文件头的偏移量*/}BITMAPFILEHEADER2.4.1BMP图像文件格式
BITMAPINFOHEADER包含位图的尺寸和颜色格式等信息,其定义如下:typedefstructtagBITMAPINFOHEADER{DWORD biSize; /*bitmapinfo结构的字节数为40*/LONG biWidth; /*图像宽度(像素数)*/LONG biHeight; /*图像高度(像素数)*/WORD biPlanes; /*目标设备平面数,总为1*/WORD biBitCount; /*每像素位数,可为1、4、8或24*//*数据压缩方式,为0(不压缩);1(BI_RLE8)或2(BI_RLE4)*/DWORD biCompression;DWORD biSizeImage; /位图的大小,以字节表示*/LONG biXPelsPerMeter;/*设备水平分辨率,以每米像素数为单位*/LONG biYPelsPerMeter;/*设备垂直分辨率,以每米像素数为单位*/DWORD biClrUsed; /*位图使用的颜色数,0表示所有颜色都使用*/DWORD biClrImportant; /*重要的颜色索引,0表示所有颜色均重要*/}BITMAPINFOHEADER2.4.1BMP图像文件格式调色板(Palette)调色板仅供灰度图像或索引图像使用,真彩色图像并不需要调色板,位图信息头部分后直接是位图数据。调色板实际上是一个数组,共有biClrUsed个元素(如果该值为零,则有2的biBitCount次方个元素)。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。结构如下:typedefstructtagRGBQUAD{BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;}RGBQUAD;2.4.1BMP图像文件格式图像数据对于用到调色板的位图,图像数据就是该像素颜色在调色板中的索引值,对于真彩色图像,图像数据就是实际的R、G、B值。需特别注意2点:(1)图像数据每一行的字节数必须是4的整倍数,否则需要补齐。(2)BMP文件的数据存放是从下到上,从左到右。也就是说,图像数据是倒置的,读取BMP文件时,先读取最下面的数据,然后依次从下往上读取数据。DIB(DeviceIndependentBitmap)图像格式是设备无关位图文件,描述图像的能力基本与BMP相同,并且能运行于多种硬件平台,只是文件较大。2.4.2其它图像文件格式
TIF标记图像文件格式TIF(TagImageFileFormat)提供存储各种信息的完备手段,可以存储专门的信息而不违反格式宗旨,是目前流行的图像文件交换标准之一。TIF文件格式是图像文件格式中最复杂的一种,要求用更多的代码来控制它,会导致文件读写速度慢。TIF文件由文件头、参数指针表与参数域、参数数据表和图像数据4部分组成。2.4.2其它图像文件格式
GIFCompuServe开发的图形交换文件格式GIF(GraphicsInterchangeFormat),可在不同的系统平台上交流和传输。GIF图像文件采取LZW压缩算法,存储效率高,支持多幅图像定序或覆盖,交错多屏幕绘图以及文本覆盖。GIF主要是为数据流而设计的一种传输格式。GIF有5个主要部分以固定顺序出现,所有部分均由一个或多个块(block)组成。2.4.2其它图像文件格式
PBM、PGM、PPM文件PBM(PortableBitMap)、PGM(PortableGreyMap)、PPM(PortablePixMap)是可交换式位图(灰度、像素)映射文件格式,通常作为各种图像格式文件之间的转换平台。PBM、PGM、PPM和BMP文件一样,图像数据均不压缩,但前者的文件头信息非常简单。文件头以ASCII方式编码,图像数据以ASCII码或字节形式编码。文件头包含3部分信息,第1项是格式标识符(MagicIdentifier),表示图像的类型及存储格式;第2至第4项分别为图像的宽度和高度、图像颜色可能的最大值和注释。文件头之后为图像数据。2.4.2其它图像文件格式
PCX文件PCX文件格式由ZSoft公司设计。各种扫描仪扫描得到的图像均能保存成PCX格式。PCX支持256种颜色,不如TIF等格式功能强,但结构较简单,存取速度快,压缩比适中,适合于一般软件的使用。PCX格式支持RGB、索引颜色、灰度和位图颜色模式,但不支持alpha通道。PCX支持RLE压缩方法,图像颜色位数可为1、4、8或24。PCX图像文件由3个部分组成:文件头、图像数据和256色调色板。PCX的文件头有128个字节,它包括版本号,被打印或扫描图像的分辨率(dpi),大小(单位为像素),每扫描行的字节数,每像素包含的位数据和彩色平面数。位图数据用行程长度压缩算法(RLE)记录数据。2.4.2其它图像文件格式
JPEG图像格式JPEG(JointPhotographer'sExpertsGroup,联合图像专家组)格式,是由ISO和CCITT为静态图像所建立的第一个国际数字图像压缩标准。由于JPEG的高压缩比和良好的图像质量,被广泛应用于多媒体和网络程序中。JPEG和GIF成为HTML语法选用的图像格式。JPEG格式支持24位颜色,并保留照片和其它连续色调图像中存在的亮度和色相的显著和细微变化。JPEG一般基于DCT变换的顺序型模式压缩图像。JPEG通过有选择地减少数据来压缩文件大小。因为它会弃用数据,故JPEG压缩为有损压缩。2.5OpenCV编程简介
OpenCVOpenCV(OpenSourceComputerVisionLibrary)是一个开源、跨平台的计算机视觉库,可以运行在Linux、Windows和MacOS桌面操作平台或Android和iOS移动操作平台上。提供了C++、C和Java接口,采用优化的C/C++编写,实现了图像处理和计算机视觉2500种优化后的通用算法。2.5OpenCV编程简介
数字图像处理的主要编程工具(1)Matlab(2)Python(3)VisualStudioC++2.5OpenCV编程简介
Matlab:MatrixLaboratory以矩阵(数组)为基本处理单元,非常适合图像处理,但效率较低,研究领域应用较多。2.5OpenCV编程简介
Python:一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNUGeneralPublicLicense)协议[2]。Python语法简洁清晰,特色之一是强制用空白符(whitespace)作为语句缩进。
IEEE发布2017年编程语言排行榜:Python高居首位
。2.5OpenCV编程简介
C++:面向对象编程,效率高,执行速度快,但对编程能力要求较高。OpenCV计算机视库的推出,极大降低了图像处理的门槛,促进了图像处理的实际应用。2.5OpenCV编程简介
openCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。2.5.1OpenCV简介
OpenCV的第一个预览版本于2000年在IEEEConferenceonComputerVisionandPatternRecognition公开,并且后续提供了5个测试版本。2006年发布1.0版2009年10月发布OpenCV2.0第二个主要版本,主要的更新是增加了C++接口并对现有实现进行了优化(特别是多核心特征),提供了使用更容易、类型更安全的新函数。目前最新版本是OpenCV2.4.8。2012年8月,OpenCV由一个非盈利性组织(OpenCV.org)来维护,并保留了一个开发者网站()和用户网站()。OpenCV的内建模块功能强大且灵活多样,这些模块能够解决计算机视觉系统中的大多数问题。可以实现人机互动、物体识别、图象分割、人脸识别、动作识别、运动跟踪、机器人视觉、运动分析、机器视觉、结构分析等各种应用领域的需求。OpenCV提供了合理的编程架构、内存管理及GPU支持。2.5.1OpenCV简介图像数据在计算机中表示为二维(灰度图像)或三维矩阵(数组)(彩色图像,多光谱图像和高光谱图像)
图像处理中,以矩阵为处理对象的操作非常多。因此,设计以向量、矩阵(Mat)类为核心和多个计算机视觉应用类和算法库非常必要。2.5.1OpenCV简介图像数涉及到的一些运算有:
(1)图像加减法I1+I2,I1-I2;(2)图像矩阵点乘I1.*I2(3)图像矩阵相乘I1*I2(4)图像中像素的运算v1(r,g,b),向量的内积、向量的模、向量的代数运算
(5)图像的直方图,特征提取均体现为向量或矩阵2.5.1OpenCV简介OpenCV提供的内建模块2.5.3OpenCV数据结构在OpenCV2中设计并定义了大量的基本数据结构,主要采用类模板来实现。2维点Point_:2维点Point_类模板定义了公有数据成员x和y,重载了+、-、==、!=4个基本的操作,还定义了点乘、叉乘等操作。特别的这个类还提供了inside函数来判断一个点是否在矩形区域内。为了方便使用,OpenCV又对常用的类型进行了类型重定义:typedefPoint_<int>Point2i;typedefPoint2iPoint;typedefPoint_<float>Point2f;typedefPoint_<double>Point2d;2.5.3OpenCV数据结构2维点Point_#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>usingnamespacestd;usingnamespacecv;intmain(){
Point2fa(0.3f,0.f),b(0.f,0.4f);Pointpt=(a+b)*10.f;
cout<<pt.x<<","<<pt.y<<endl;return0;}输出的结果:3,42.5.3OpenCV数据结构3维点Point3_类似于2维点,OpenCV同时提供了Point3_类模板,只不过它是一个3维点(x,y,z)。它的常用类型是:typedefPoint3_<int>Point3i;typedefPoint3_<float>Point3f;typedefPoint3_<double>Point3d;2.5.3OpenCV数据结构尺寸Size_类模板Size能够访问的成员变量是height和width。还定义了area函数来求面积。其他的操作基本都是类型转化函数。它的常用类型是:typedefSize_<int>Size2i;typedefSize2iSize;typedefSize_<float>Size2f2.5.3OpenCV数据结构矩形Rect_类模板矩形区域(x,y,width,height),(x,y)左上角坐标,范围[x,x+width),[y,y+height)。rect=rect±point//矩形偏移rect=rect±size//改变大小rect+=point,rect-=point,rect+=size,rect-=sizerect=rect1&rect2//矩形交集rect=rect1|rect2//包含rect1rect2的最小矩形rect&=rect1,rect|=rect1rect==rect1,rect!=rect12.5.3OpenCV数据结构旋转矩形RotatedRect类除了基本的矩形之外,OpenCV还提供了一个可以旋转的矩形RotatedRect,它是由中心、变长、旋转角度决定的。可以访问它的这三个成员,也可以使用points函数返回它的4个顶点,使用boundingRect求出它的外接矩形(非旋转)。RotatedRectrRect=RotatedRect(Point2f(100,100),Size2f(100,50),30);2.5.3OpenCV数据结构小矩阵Matx类模板用来记录一些小的矩形。这些矩形在编译前大小就固定了:typedefMatx<float,1,2>Matx12f;typedefMatx<double,1,2>Matx12d;...typedefMatx<float,1,6>Matx16f;typedefMatx<double,1,6>Matx16d;typedefMatx<float,2,1>Matx21f;typedefMatx<double,2,1>Matx21d;...typedefMatx<float,6,1>Matx61f;typedefMatx<double,6,1>Matx61d;typedefMatx<float,2,2>Matx22f;typedefMatx<double,2,2>Matx22d;...typedefMatx<float,6,6>Matx66f;typedefMatx<double,6,6>Matx66d;如:Matx33fm(1,2,3,4,5,6,7,8,9);2.5.3OpenCV数据结构短向量Vec类模板typedefVec<uchar,2>Vec2b;typedefVec<uchar,3>Vec3b;typedefVec<uchar,4>Vec4b;typedefVec<short,2>Vec2s;typedefVec<short,3>Vec3s;typedefVec<short,4>Vec4s;typedefVec<int,2>Vec2i;typedefVec<int,3>Vec3i;typedefVec<int,4>Vec4i;typedefVec<float,2>Vec2f;typedefVec<float,3>Vec3f;typedefVec<float,4>Vec4f;typedefVec<float,6>Vec6f;typedefVec<double,2>Vec2d;typedefVec<double,3>Vec3d;typedefVec<double,4>Vec4d;typedefVec<double,6>Vec6d;它支持加、减、数乘、相等、不等、求范数等运算。2.5.3OpenCV数据结构四维向量Scalar_类模板Scalar_类其实是用Vec<tp,4>派生下来的,也就是说,它是一个4元组:typedefScalar_<double>Scalar;他通常用来传递像素。Range类Range类用来指定连续的子序列,比如矩阵的一部分。2.5.3OpenCV数据结构Matcv::Mat类是用于保存其它n维数组,主要用于保存图像数据,默认情况下,定义cv::Mat类对象时,其大小为0×0。当然,也可以给其构造函数提供合适的实参,以定义需要的数据。如:cv::Matima(240,320,CV_8U,cv::Scalar(100));其中,CV_8U表示每个图像像素用1字节表示,U表示无符号。也可以用S表示有符号数。对于彩色图像,应该使用3个通道用表示CV_8UC3。也可以是16位或32位整型CV_8SC3。也可以是32位或64位浮点数CV_32F。2.5.3OpenCV数据结构Mat创建cv::Mat类对象2.5.3OpenCV数据结构Mat访问cv::Mat类对象的元素2.5.3OpenCV数据结构Matcv::Mat类对象的表达式2.5.4读入、显示和存储图像读图像的源程序#include<iostream>//支持标准的输入输出#include<opencv2/core/core.hpp>//openCV核心模块#include<opencv2/highgui/highgui.hpp>//支持简单的界面usingnamespacestd;//命名空间stdusingnamespacecv;//命名空间cvintmain(){Matimage,result;//创建2个对象cout<<"size:"<<image.size().height<<","<<image.size().width<<endl;image=imread("tiger.jpg");if(!image.data){cout<<"readimagefilefail!"<<endl;
}namedWindow("OriginalImage");imshow("OriginalImage",image);flip(image,result,1);//水平翻转图像namedWindow("OutputImage");imshow("OutputImage",result);imwrite("output.bmp",result);waitKey(0);return0;}2.5.5操作图像像素
at方法cv::Mat提供了一个at(inty,intx)函数模板以操作指定位置的矩阵元素,在使用时需要指定函数返回的数据类型,image.at<uchar>(j,i)=255;image.at<cv::Vec3b>(j,i)[channel]=value;2.5.5操作图像像素
迭代器类似于STL库的用法,OpenCV可以采用迭代器实现像素的操作。同样,在使用迭代器时需要指定返回的数据类型,如:cv::MatIterator_<cv::Vec3b>it;//将Mat对象看作是容器cv::Mat_<cv::Vec3b>::iteratorit;2.5.5操作图像像素使用指针cv::Mat提供了一个ptr(inti)函数模板以获取指定行数据的首地址。利用这一地址即可实现像素的操作。同样,在使用ptr(inti)函数时需要指定返回的数据类型,如:image.ptr<uchar>(i);整行整列像素值的赋值对于整行或者整列的数据,可以考虑这种方式处理:img.row(i).setTo(Scalar(255));img.col(j).setTo(Scalar(255));2.5.6图形交互和媒体接口HighGUI
OpenCV提供了功能强大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平台下使用。新版本的HighGUI接口包括:(1)创建并控制窗口,用于显示图片并记录其内容;(2)为窗口添加了滑杆控件(trackbars控件),可以方便利用鼠标进行控制;(3)读写硬盘和内存的图片;(4)读取摄像头的视频、读写视频文件。习题熟悉并理解openCV对图像的主要操作。
编程实现对一幅图像采样与量化,并分析结果。
编程实现对一幅图像的各种颜色模型转换。
数字图像处理DigitalImageProcessing目录1.概论2.数字图像处理基础3.图像增强4.图像的几何变换5.频域处理6.数学形态学基础7.图像分割8.图像特征与理解第三章图像增强1.灰度变换2.直方图修正3.图像平滑4.图像锐化5.伪彩色处理光照偏暗有雾图像图像增强目的1.图像增强的目的:改善图像的视觉效果或使图像更适合于人或机器分析处理。2.从处理的作用域出发,图像增强可以分为空间域法和频率域法。前者在空间域(或称图像空间)直接对像素进行处理,后者在图像的变换域内处理,然后经逆变换获得增强图像。3.本章将介绍灰度变换、直方图、直方图修正、图像平滑、图像锐化和伪彩色增强。3.1灰度变换
空域增强是指在由像素组成的空间直接对像素进行增强的方法,可表示为:点处理:g(x,y)只依赖于输入f(x,y),与其它像素无关区处理:g(x,y)依赖于f(x,y)及其周围的点。
灰度变换是一种点处理,原图像的像素灰度经过某个变换函数变换成新的图像灰度。3.1灰度变换
直接灰度变换灰度线性变换分段线性变换非线性变换直方图修正直方图均衡化直方图规定化灰度变换3.1.1灰度线性变换假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],则灰度线性变换可表示为:3.1.1灰度变换
灰度线性变换可通过下图直观表示:abdc3.1.1灰度变换
几个例子(a)原始图像(b)[0,255][255,0](c)[0,128][0,255](d)[0,128][64,255]3.1.2分段灰度变换
几个例子取a=4,b=0对图像进行对比度增强变换方程为:y=ax+b3.1.2分段灰度变换
几个例子取a=1,b=100将图像所有灰度值上移变换方程为:y=ax+b3.1.2分段灰度变换
为了突出感兴趣的灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换。L-1abf(x,y)L-1cd3.1.2分段灰度变换
为了突出感兴趣的灰度区间,相对抑制那些不感兴趣的灰度区间,可采用分段线性变换。(a)原始图像
(b)变换曲线
(c)输出图像3.1.3非线性变换非线性变换采用非线性变换函数,以满足特殊的处理需求。
典型的非线性变换函数有幂函数、对数函数、指数函数、阈值函数、多值量化函数、窗口函数等。3.1.3非线性变换幂律变换:图像获取、打印和显示等设备的输入输出响应通常为非线性的,满足幂律关系。为了得到正确的输出结果而对这种幂律关系进行校正的过程就称之为γ校正。3.2直方图修正图像直方图是对像素的某种属性(如灰度、颜色、梯度等)分布进行统计分析的重要手段。
通过修正直方图,可以增强图像对比度;通过分析直方图,有助于确定图像分割的阈值;直方图还可用于图像匹配等操作。3.2.1直方图的基本概念灰度直方图是灰度级的函数,它反映了图像中每一灰度级出现的次数或频率。
1234566432211664663456661466231364661234565456214灰度直方图3.2.2直方图的性质所有的空间位置信息全部丢失。图像与直方图间的多对一关系。各子图像的直方图之和等于整幅图像的直方图。直方图的分解多对一关系3.2.3直方图的计算
灰度直方图计算,依据定义,若图像具有L(通常L=256,即8位灰度级)级灰度,则大小为M×N的灰度图象f(x,y)的灰度直方图Hist[0…L-1]可用如下算法得到:
1.初始化Hist[k]=0;k=0,…,L-12.统计gray=f(x,y);Hist[gray]=Hist[gray]+1;x,y=0,…,M-1,0,…,N-1
3.标准化Hist=Hist/(M*N)
其中,直方图的标准化是一个可选项,若不需要进行特殊处理可以不进行此操作。3.2.3直方图的计算彩色图像是指每个像素的信息由RGB三原色构成的图像,其中RGB是由不同的灰度级来描述的。3.2.3直方图的计算统计图像中每一种颜色出现的次数,可得到彩色图像直方图。伪代码如下:
Im;//彩色图像Hist(256,256,256)=0;//初始化直方图数组
fori=1:heightforj=1:widthRed=Im(i,j,1);Green=Im(i,j,2);Blue=Im(i,j,3);Hist(Red,Green,Blue)=Hist(Red,Green,Blue)+1;endendHist=Hist/(height*width);//直方图规范化3.2.4直方图均衡化
直方图均衡化的基本思想是把原始图像的直方图变换为均匀分布的形式,从而增加图像灰度的动态范围,达到增强图像对比度的效果。
经过均衡化处理的图像,此时图像的熵最大,图像所包含的信息量最大。0rHA(r)0rs0sHB(s)255255drds熵:3.2.4直方图均衡化
设r为灰度变换前的归一化灰度级(0≤r≤1),T(r)为变换函数,s=T(r)为变换后的归一化灰度级(0≤r≤1),变换函数T(r)满足下列条件:
在0≤r≤1区间内,T(r)单调增加;在0≤r≤1区间内,0≤T(r)≤1;3.2.4直方图均衡化对图像A(x,y),灰度范围为[0,L],其图像的直方图为HA(r)归一化:概率密度函数为:概率分布函数为:变换函数s=T(r)将输入图像A(x,y)转换为输出图像B(x,y)。总像素点数:3.2.4直方图均衡化HB(s)为均衡化后的直方图,每个灰度值具有相同的概率。因此,可简写HB(s)=C;PB(s)=C/A0。
根据直方图的含义,经过灰度变换后对应的小面积元相等。0rHA(r)0rs0sHB(s)255255drds3.2.4直方图均衡化0rHA(r)0rs0sHB(s)255255drds3.2.4直方图均衡化
离散情况:
举例:f为原始图像,对f进行直方图均衡化(1)求出原图f的灰度直方图h,设为h。h为一个10维的向量。1399821373360646820529260fh031224344151647182933.2.4直方图均衡化
举例:f为原始图像,对f进行直方图均衡化(2)求出图像f的总体像素个数Nf=m×n(m,n分别为图像的长和宽),计算每个灰度级的像素个数在整个图像中所占的百分比。hs(i)=h(i)/Nf(i=0,1,…,9)h03122434415164718293hs00.1210.0820.1630.1640.0450.0460.1670.0480.0890.123.2.4直方图均衡化
举例:f为原始图像,对f进行直方图均衡化(3)计算图像各灰度级的累计分布hp
hshp00.1210.0820.1630.1640.0450.0460.1670.0480.0890.1200.1210.2020.3630.5240.5650.6060.7670.8080.8891.003.2.4直方图均衡化
举例:f为原始图像,对f进行直方图均衡化(4)计算图像各灰度级的累计分布hp
1399821373360646820529260fg1.84.7997.93.21.84.77.24.74.76.806.82.26.87.93.205.43.293.26.80hp00.1210.2020.3630.5240.5650.6060.7670.8080.8891.003.2.4直方图均衡化
直方图均衡化结果演示3.3图像平滑
图像平滑的主要目的是消除噪声或模糊图像,去除小的细节或弥合目标间的缝隙。
从信号频谱角度来看,信号缓慢变化的部分在频率域表现为低频,而迅速变化的部分表现为高频。(a)原图像(b)平滑后3.3.1图像噪声
图像噪声,是图像在处理、存储、传输过程中所受到的随机干扰信号。噪声可以理解为“妨碍人们感觉器官对所接收的信源信息理解的因素”。(比如电视上的雪花点)噪声也可以理解为不可预测的,只能用概率统计方法来认识的随机误差。噪声可以借用随机过程及其概率密度函数来描述,通常用其数字特征,如均值、方差等。3.3.1图像噪声(1)按照产生原因,图像噪声可分为外部噪声和内部噪声。(2)按照统计特性,图像噪声可分为平稳噪声和非平稳噪声。(3)按照幅度分布,图像噪声可以分为高斯噪声、椒盐噪声等。(4)按照噪声频谱,图像噪声可以分为白噪声和1/f噪声等。(5)按噪声和信号之间的关系,图像噪声可分为加性噪声和乘性噪声。加性噪声乘性噪声3.3.1图像噪声
图像噪声的特点噪声在图像中的分布和大小不规则,即具有随机性。噪声一般与图像具有相关性。噪声具有叠加性。在串联图像传输系统中,各个串联部件引起的噪声叠加起来,造成信噪比下降。3.3.2模板卷积
模板操作是数字图像处理中常用的一种邻域运算方式,主要有卷积和相关2种,可以实现图像平滑、图像锐化、边缘检测等功能。卷积是最近流行的卷积神经网络(深度学习)最主要的操作之一。https:///questions/114385/what-is-the-difference-between-convolutional-neural-networks-restricted-boltzma
模板图像3.3.2模板卷积
模板卷积(或相关)是指模板与图像进行卷积(或相关)运算,是一种线性滤波,其输出像素是输入邻域像素的线性加权和。卷积相关卷积与相关运算的主要区别在于卷积运算前需要将模板绕模板中心旋转180°,因其余运算过程一致而统称为模板卷积。3.3.2模板卷积卷积举例评估一个地区化工厂污染物的排放量:(1)假设t时刻化工厂污染物的排放量是f(t)g;(2)被排放的药物在排放后Δt时刻的残留比率是g(Δt)
g/g;(3)在u时刻,对于t时刻排放出来的污染物,它们对应的Δt=u-t。从t1时刻到当前时刻u,污染物的总残余量为:3.3.2模板卷积
模板卷积中的模板又称为卷积核,其元素称为卷积系数、模板系数或加权系数,其大小及排列顺序决定了对图像进行邻域处理的类型。基本步骤如下:(1)模板在输入图像上移动,让模板原点与某个输入像素f(i,j)重合;(2)模板系数与模板下对应的输入像素相乘,再将乘积相加求和;(3)将第(2)步的运算结果赋予与模板原点对应像素的输出g(i,j)。3.3.2模板卷积模板操作需注意两点(1)图像边界问题。(2)计算结果可能超出灰度范围。(1)通过padding(扩充图像边界)处理边界点不能进行卷积的问题。(2)采用ReLU函数,使得卷积结果小于零的置为0。在卷积神经网络中:3.3.2模板卷积
卷积运算优化:模板卷积是一种非常耗时的运算,尤其是模板尺寸较大时。以3×3模板为例,每次模板运算需要9次乘法、8次加法和1次除法。
将二维模板分解为多个一维模板,可有效减少运算量。
在卷积神经网络中,将二维模板拆成多个一维模板来实现卷积,也是常用的技巧之一,减少了参数个数,并降低运算量。3.3.3邻域平均
邻域平均法是一种线性低通滤波器,其思想是用与滤波器模板对应的邻域像素平均值或加权平均值作为中心像素的输出结果,以便去除突变的像素点,从而滤除一定的噪声。邻域平均的卷积核系数之和为1。3.3.3邻域平均邻域平均法中常用的两个模板邻域平均法的主要优点是算法简单,但它在降低噪声的同时使图像产生模糊,特别是在边缘和细节处。模板尺寸越大,则图像模糊程度越大。3.3.3邻域平均邻域平滑举例121431223457689576885678912143122345768957688567893444566783.3.3邻域平均加权模板(Weightedaveragefilter)3.3.4中值滤波
中值滤波是一种非线性滤波,它能在滤除噪声的同时很好地保持图像边缘。中值滤波把以某像素为中心的小窗口内的所有像素的灰度按从小到大排序,取排序结果的中间值作为该像素的灰度值。121431223457689576885678912143122345768957688567892345666783.3.4中值滤波中值滤波性质不影响阶跃信号、斜坡信号.中值滤波的输出与输入噪声的密度分布有关。中值滤波频谱特性起伏不大,可以认为中值滤波后,信号频谱基本不变。3.3.4中值滤波中值滤波演示3.3.4中值滤波邻域平滑与中值滤波比较(a)椒盐噪声图像
(b)图(a)的均值滤波(c)图(a)的中值滤波(d)图(a)的高斯平滑(e)高斯噪声图像
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论