数字图像处理方法与研究毕业论文.doc

上传人:laozhun 文档编号:3944101 上传时间:2023-03-28 格式:DOC 页数:28 大小:1.52MB
返回 下载 相关 举报
数字图像处理方法与研究毕业论文.doc_第1页
第1页 / 共28页
数字图像处理方法与研究毕业论文.doc_第2页
第2页 / 共28页
数字图像处理方法与研究毕业论文.doc_第3页
第3页 / 共28页
数字图像处理方法与研究毕业论文.doc_第4页
第4页 / 共28页
数字图像处理方法与研究毕业论文.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《数字图像处理方法与研究毕业论文.doc》由会员分享,可在线阅读,更多相关《数字图像处理方法与研究毕业论文.doc(28页珍藏版)》请在三一办公上搜索。

1、数字图像处理方法与研究目 录第一章绪 论11.1 引言11.2 数字图像技术的应用与发展11.3 问题的提出31.4 论文各章节的安排4第二章 数字图像处理方法与研究52.1灰度直方图52.1.1定义52.1.2直方图的性质和用途52.2几何变换82.2.1空间变换82.2.2灰度级插值82.2.3几何运算的应用102.3空间滤波增强102.3.1空间滤波原理102.3.2拉普拉斯算子112.3.3中值滤波122.4图像分割处理132.4.1直方图门限化的二值分割142.4.2直方图的最佳门限分割142.4.3区域生长16第三章 图像处理软件设计183.1图像处理软件开发工具的选择183.1.

2、1BMP图像格式的结构183.1.2软件开发工具的选择193.2EAN-13码简介203.2.1EAN-13条码的结构203.2.2条码的编码方法213.1系统界面设计22第四章 条码图像测试244.1条码图像处理的主要方法244.2条码图像测试结果25第五章 总结与展望28参考文献29致 谢30第一章绪 论1.1 引言数字图像处理(Digital Image Processing)技术起源于20世纪20年代,当时受条件的限制一直没有取得较大进展,直到20世纪60年代后电子技术、计算机技术有了相当的发展,数字图像处理技术才开始进入了高速发展时期。经过几十年的发展,数字图像处理技术目前已经广泛应

3、用于工业、微生物领域、医学、航空航天以及国防等许多重要领域,而且多年来一直得到世界各科技强国的广泛关注,即使在某些国家大幅裁减军费的同时,仍在不断加大图像处理在SAR(Synthetic Aperture Radar,合成孔径雷达)成像、遥感遥测等方面的研究力度。1.2 数字图像技术的应用与发展数字图像处理起源于20世纪20年代,当时通过海底电缆从英国伦敦到美国纽约采用数字压缩技术传输了第一副数字照片。此后,由于遥感等领域的应用,使数字图像技术逐步受到关注并得到相应的发展。1964年,美国的喷气推进实验室处理了由太空船“徘徊者七号”发回的月球照片,标志着第三代计算机问世后数字图像处理得到普遍应

4、用。由于CT的发明、应用研究及获得科技界瞩目的诺贝尔奖,使得数字图像处理技术大放异彩。其后,数字图像处理技术发展迅速,目前已成为工程学、计算机科学、信息科学、统计学、物理学、化学、生物学、医学甚至社会科学等领域各学科之间学习和研究的对象。随着信息高速公路、数字地球概念的提出以及Internet的广泛应用,信息传输中的非话业务也急剧增长。其中,图像信息以其信息量大、传输速度快、作用距离远等优点使其成为人类获取信息的重要来源及利用信息的重要手段。今天,多科学的交叉、融合使数字图像处理科学与技术逐步向其他学科领域渗透,并为其他学科所利用已成为科学发展的必然。在信息社会,数字图像处理科学无论是在理论上

5、还是在实践上都存在着巨大的潜力。第二章 数字图像处理方法与研究2.1 灰度直方图在数字图象处理中,一个最简单和有用的工具是灰度直方图,它概括了一幅图像的灰度级内容。任何一幅图像的直方图都包括了可观的信息,某些类型的图像还可以由其直方图完全描述,直方图的计算是简单的,特别是当一幅图像从一个地方被复制到另一个地方时,直方图的计算可以用非常低的代价来完成。2.1.1 定义灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标是灰度级,纵坐标是该灰度级出现的频率(像素的个数)。灰度直方图也有另一种方式的定义,假设有一幅由函数D(x,y)所定义的连续图像,它平滑地从中心的高灰度级变化

6、到边沿的低灰度级。可以选择某一灰度级,然后定义一条轮廓线,该轮廓线连接了图像上所有具有灰度级的点。所得到的轮廓线形成了包围灰度级大于的区域的封闭曲线。2.1.2 直方图的性质和用途 (1)性质1)直方图没有位置信息直方图描述了每个灰度级具有的像素的个数,但不能为这些像素在图像中的位置提供任何线索。因此,任何一幅特定的图像有唯一的直方图,但反之不成立。如图2.1中四幅图像,若有斜线的目标具有同样灰度且余线面积相等时,完全相异的图像其直方图是相同的,这就说明不同的图像可能具有同样的直方图。 (a) (b) (c) (d)图 2. 1 直方图的总体统计性2)直方图是总体灰度概念直方图可看出图像整体的

7、性质,如图2.2的前四幅图像中(a)直方图表表示这幅原图总体偏暗,(b)直方图表示原图总体偏亮,(c)直方图表示原图像的灰度动态范围太小,许多细节必然分辨不清楚,(d)图各种灰度分布均匀,给人以清晰、明快的感觉。后三幅表示动态范围的选择。(e)图的动态范围合适,(f)图动态范围太小,(g)图动态范围太大。3)直方图的可叠加性若一幅图像可分为四个区,则每个区都可分别作直方图,而原图像的总直方图为各区直方图之和。各区的形状、大小都可随意选择。4)直方图的统计特征由于直方图定义为 (2.1) 这样直方图是一维连续函数,因而该图形也有其统计特征,如矩 r为灰度级r=0,1,;r为矩的阶数 (2.2)

8、绝对矩 (2.3) 中心矩 (2.4) 其统计量如均值,均方值或能量,方差等这些在图像的纹理识别中有较大的用途。5)直方图的动态范围直方图的灰度动态范围对实用计算机图像处理系统来说是通过模数转换器件才能得到的灰度分布数据。若用八位模数转换则最低位反映较微小变化的灰度信息,若舍入,则丢失了灰度细节信息。若灰度信号范围与转换器不匹配,仍用八位的模数转换器则会有图2.2中后三幅几种情况。它暴露出灰度动态范围选择不当出现的问题。图(c)选择动态范围恰好,图(f)则所选范围利用不充分,图(g)应选取有用的一段恰为256级灰度动态范围。 0 255 0 255 0 255 0 255 (a) (b) (c

9、) (d) 0 255 0 255 0 255 (e) (f) (g) 图 2. 2 直方图的动态范围综上直方图性质可知,直方图必须经过修改以适应各种图像的应用领域。其公式可总结如下,设图像f(x,y)的灰度的像元素为,图像总像元为N,则归一化直方图为 k=0,1,2, (2.5) (2.6)计算机中直方图常画为竖的线状图。对于彩色图像可分解为红、绿、蓝三幅图像,因此有三幅直方图。彩色图像,若由红、绿、蓝三幅所合成,则有红、绿、蓝三幅直方图,进计算机处理时也是红、绿、蓝分开处理再合成。(2)用途1)数字化参数直方图给出了一个简单可见的指示,用来判断一幅图像是否合理地利用了全部被允许的灰度级范围

10、。一般一幅数字图像应该利用全部或几乎全部可能的灰度级。否则等于增加了量化间隔。一旦被数字化图像的级数少于256,丢失的信息(除非重新数字化)将不能恢复。如果图像具有超出数字化器所能处理的范围的亮度,则这些灰度级将被简单地置为0或255,由于将在直方图的一端或两端产生尖峰。数字化时对直方图快速检查可以使数字化中产生的问题及早的暴露出来,以免浪费大量时间。2)边界阈值选择轮廓线提供了一种确立图像中简单物体边界的有效方法。使用轮廓线作为边界的技术被称为阈值化。2.2 几何变换几何运算可以改变图像中各物体之间的空间关系。这种运算可以被看成是将(各)物体在图内移动。由于输入图像中的任何点可以移动到输出图

11、像中任意位置,这样一种不受限制的几何运算十有八九会弄乱图像的内容,因此对几何运算往往需要限制以保持图像的外观顺序。一个几何运算需要二个独立的算法。首先,需要一个算法来定义空间变换本身,用它描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。同时,还需要一个用于灰度插值的算法,这是因为在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也是如此。2.2.1 空间变换 在大多数应用中,要求保持图像中曲线型特征的连续性和物体的连通性,一个约束较少的空间变换算法很可能会弄断直线和打碎图像。用数学方法来描述输入、输出图像之间的空间关系极为方便,几何运算

12、的一般定义为 (2.7)其中,f(x,y)表示输入图像,g( x,y)表示输出图像。函数a(x,y)和b(x,y)唯一地描述了空间变换,若它们是连续的,则连通关系将在图像中得到保持。 2.2.2 灰度级插值几何运算的第二个要求上有进行灰度级插值的算法。在输入图像f(x,y)中,灰度值仅在整数位置(x,y)处被定义。然而,在等式(2.7)中,g(x,y)的灰度值一般由处在非整数坐标上的f(x,y)值来定义。所以,如果把几何运算看成是一个从f到g的映射,则f中的一个像素会映射到g中几个像素之间的位置;反过来也是如此。因此,为了决定与该位置相对应的灰度值,必须进行插值运算。 有了空间变换和灰度级插值

13、算法,我们就可以开始执行一个几何运算。通常,计算机程序中总有几种固定的灰度级插值算法,而用来定义空间变换的算法将随任务不同而不同。因为灰度级插值算法总是相同的,或可从几种算法中选一个,因此,每个特定的几何运算正是由空间变换算法定义的。(1)最近邻插值最简单的插值方法是所谓零阶插值或称为最近邻插值,即令输出像素的灰度值等于离它所映射到的位置最近的输入像素的灰度值。最近邻插值计算十分简单,在许多情况下,其结果也可令人接受。然而,当图像中包含像素之间灰度级有变化的细微结构时,最近邻插值法在图像中产生人工的痕迹。 (2)双线性插值 一阶插值(或称双线性插值法)和零阶插值法相比可产生更令人满意的效果。由

14、于通过四点确定一个平面是一个过约束问题,所以在一个矩形栅格上进行的一阶插值就需要用到双线性函数。 令 f(x,y)为两个变量的函数,其在单位正方形顶点的值已知。假设我们希望通过插值得到正方形内任意点的f(x,y)值。我们可令由双曲线方程 (2.8)定义的双曲抛物面与四个已知点拟合。从a 到 d 这四个系数须由已知的四个顶点的f(x,y)值来选定。有一个简单的算法可产生一个双线性插值函数,并使之与四个顶点的f(x,y)值拟合。首先,我们对上端的四个顶点进行线性插值可得 (2.9)类似地,对于底端两个顶点进行线性插值有 (2.10)最后我们做垂直方向的线性插值,以确定 (2.11)将等式(2-9)

15、、(2-10)代入(2-11)展开并合并同类项可得 (2.12)该式形式类似于等式(2.8),因此确是双线性的。通过验证即可知,等式(2.12)确实满足已知的单位正方形四个顶点f(x,y)值。 注意,若我们令x(或y)为常数,则等式(2.8)成为另一个变量y(或x)的线性方程,这表明了双曲抛物面是一个服从双重规则的表面;它与平行于 xz 平面的所有平面和平行于yz平面的所有平面都相交于一条直线。 双线性插值可直接通过等式(2.12)来实现,也可通过(2.9)、(2.10)、(2.11)这三次线性插值等式来完成。因为等式(2.12)需用到四次乘法、八次加(减)法运算,而第二种方法只需要三次乘法和

16、六次加(减)法,所以几何变换程序一般选择后者。2.2.3 几何运算的应用(1)几何校正 几何运算的一个重要应用是消除摄像机导致的数字图像的几何畸变。当需从数字图像中得到定量的空间到的测量数据时,几何校正被证明是十分重要的。某些图像,例如从卫星上或飞机侧视雷达上得图像,都有相当严重的几何变形。这些图像需要先经过几何校正,然后才能对其内容做出解释。当采用软件方式对条码位图进行识别时,位图中的条码也可能存在几何变形,因此,几何校正对于条码识别也具有特别重要的意义。 (2)图像校值一些图像系统使用非矩形的像素坐标。在用普通的显示设备观察这些图像时,必须先对它们进行校直,也就是说将其转换为矩形像素坐标。

17、 (3)变形 在电影或电视工业中,许多越来越普及的特技是基于几何运算的。变形就是一种可以使一个物体逐渐变为另一个物体的技术。 (4)地图投影几何运算的另一个主要应用是地图绘制中的图像投影。例如,在利用从宇宙飞船上传回来的图像,拼成地球、月球及行星的航片镶嵌地图时,就必须用几何运算。2.3 空间滤波增强 2.3.1 空间滤波原理用频域滤波方法使图像增强的主要缺点是所有滤波方法的流程中都附加了对图像的傅立叶正变换和反变换。对于数据量很大的二维图像来讲需占较大内存,且运算时间也过长。从原理看频域滤波是频域乘一个H(u,v)滤波(传递)函数而成,这时相当于在空域把图像与滤波函数的空域函数h(x,y)做

18、卷积。因此,可以把频域滤波处理改为空域执行卷积,称为空间滤波方法。 若频域的滤波函数H(u,v)的空域函数为h(x,y),则在空域用f(x,y)和h(x,y)做卷积其效果和在频域滤波是一样的。其中h(x,y)是H(u,v)的傅立叶反变换。设图像f(x,y)为NN模板 ,则h(x,y)也是NN模板大小,这样做卷积很费时间。因此常用小区卷积,就是把图像分成许多小区进行滤波,这个小区常用33模板或55模板表示。常用的程序往往都是选择33模板的h(x,y)作卷积,选择不同的33模板的h(x,y)就相应于图像作各种高通、低通、带通、带阻滤波。h(x,y)是空域的一个33模板图像,故称为样板或掩模。用33

19、模板样板编程时极为方便,只需一个固定的卷积程序,改变不同样板内的数据就可适应不同的滤波需求。另外,h(x,y)是滤波H(u,v)的傅立叶反变换,因此其样板内的数据就是一个确定值,但是用33模板离散数据来描述二维连续函数必然会有量化误差。所以样板的数据对各种不同滤波要求都是近似数据。根据具体情况作小量修改滤波效果即会有较大改善。另外,由于样板法简单,程序统一,稍加修改即可适应各种需求,因此把能够在空域中处理的程序都归入样板法的范畴,例如在空域求一个33模板小区的平均就可用样板法执行。高频空间滤波的各种修改形式: 其中: 的总权皆为1,以免引起亮度偏移。低通空间滤波 空域求平均 2.3.2 拉普拉

20、斯算子为了突出增强图像中的孤立点、孤立线或线端点,在某些实际应用中常采用拉氏算子,如机场、公路、铁路勘测图像就常用线性微分拉普拉斯算子 (2.13)这个算子是旋转不变算子。该算子对于边缘是敏感的。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置,此算子却可用二次微分正峰和负峰之间的过零点来确定。从公式看出此算子对孤立点或端点更加敏感。用差分代替微分来执行拉氏算子的运算是常用的方法: (2.14) (2.15) (2.16) (2.17)则= (2.18)显然,拉普拉斯算子是个空域算子,也可以用模板来计算,其33模板算子为 2.3.3 中值滤波这是一种非线性滤波。它首先确定一个奇

21、数像元的窗口W,窗口内各像元按灰度大小排队后,用其中间位置的灰度值代替原f(x,y),灰度值成为增强图像g(x,y) (2.19)W为选定窗口的大小。这种滤波比低通滤波消除噪声更有效。因为噪声多为尖峰状干扰,若用低通滤波虽能去除噪声但陡峭的边缘将被模糊。中值滤波能去除点状尖峰干扰而边缘不会变坏。 (1)滤波窗口 窗口大小常选35模板,57模板,77模板,且常用十字状窗口。窗口选定后把窗口内各像元按灰度大小排列。以一维窗口为例,设W罩住的五个像元其灰度按位置顺序为2,5,1,8,9,按大小排队顺序为1,2,5,8,9,此序列的中间位置为5,代替原窗口的中间值1。(2)滤波的性质1)非线形:两序列

22、f(r),g(r) (2.20) 2)对尖峰性干扰效果好,即保持边缘的陡度又去掉干扰,对高斯分布噪声效果差; 3)对噪声延续小于尼的噪声抑制效果好。(3)加权中值滤波上面讲到一般中值滤波不适于细节多、细线多的图像,为了解决这个问题,可以用加权中值滤波法,把窗口内各像元加权,某一像元加权值m,即窗口像元灰度排队时该像元重复m个。例如一维13模板可使中间像元的权m=3,两边像元各为m=2,然后再去排队。这样权中值W-med即变为med再去灰度排队。这样可保存细节。如图2.3所示的类似灰度为5的方块,背景为1的图形,用33模板的窗口时对由粗体字组成的域进行一般中值滤波,如图(b),加权中值滤波如图(

23、c),图(a)为原图像。设加权形式为中间点取三个值,上下左右四点取两个值,对角线取一个值。则灰度为5的方块对角点的一般中值滤波为med1,1,1,1,5,5,1,5,5=1。角点值变为1,这样处理 后图像的尖角丢掉了。若用上述加权方式进行W-med1,1,1,1,1,1,5,5,5,5,5,1,5,5,5=5,则保留了方块的尖角,如图2.3(c)。注意看图中由粗体字组成的域。111111111111555555111155555511115588551111558855111155555511115555551111111111111115555111115555551111558855111

24、155885511115555551111155551111111111111115555551111555555111155885511115588551111555555111155555511 (a) (b) (c) 图 2. 3 加权中值滤波2.4 图像分割处理 使用阈值是一种区域分割技术,它对物体与背景有较强对比的景物的分割特别有用。当使用阈值规则进行图像分割时,所有灰度值大于或等于阈值的像素都被判属于物体。所有灰度值小于该阈值的像素被排除在物体之外。如果感兴趣的物体在其内部具有均匀一致的灰度值并分布在一个具有另一个灰度值的均匀背景上,使用阈值方法效果就很好。如果物体同背景的差别在于

25、某些性质而不是灰度值,那么可以首先把那个性质转化为灰度,然后利用灰度阈值化技术分割待处理的图像。2.4.1 直方图门限化的二值分割 设图像f(x,y)中只有两种灰度,一种代表物体,另一种代表背景,若物体与背景的灰度有明显差别,则其灰度直方图统计将呈双峰状态。最简易的方法是把直方图的谷点的灰度作为门限值T,以T为门限,按下式对图像进行处理可得到二值图像g(x,y) (2.21)非二值化分割的实现,仍以上例情况讨论,它把直方图分为两部分,构成两幅图像和 (2.22) (2.23)这时反映了的物体而其余部分为零的图像。同样反映了背景的图像而物体部分为零。非二值化分割抽出了背景和物体的边缘而且也保留了

26、其内部信息,这样更便于用其它方法处理。图2.4和图2.5分别表示采用迭代阈值分割和自适应阈值分割所获得的条码图像效果。 图 2. 4 迭代阈值分割 图 2. 5 自适应阈值分割2.4.2 直方图的最佳门限分割 为了更精确地找出图像中物理的边缘,应把整幅图像分成许多小区域,把这些小区域分成只有物理和背景、单纯背景、单纯物体三类小区,这时再使用上面的直方图门限法找出小区边缘再连成总的边缘。因为三类图像的直方图各有特点,如单纯物体的单纯背景,其直方图为单峰,有物体和背景为双峰。故应考虑图像中背景和物体的先验概率才能更加准确。对有双峰小区,准确地分开物体与背景之间边界的最佳门限方法如下所述。 若已知小

27、区图像直方图为双峰型,这时图像的直方图可看作是灰度级的概率密度函数的离散化估计。因此总的密度函数是两个单峰密度函数的混合,一个是物体峰,一个是背景峰。其混合参数正比于每一种图像灰度的面积。若已知这些灰度的概率密度的表达式,就能按照最小误差准则来确定最佳门限T。设已知图像的物体和背景为高斯型分布,其概率密度为 (2.24) (2.25)式中,分别为两种灰度的均值;分别为两种灰度分布围绕均值的标准差;为两种灰度分布的先验概率。若图像中只包含这两种分布,则其混合概率密度为 = (2.26)由于图像中像元的约束条件应满足 (2.27)这样式中的混合密度有五个未知参数。若所有参数皆可知或从拟合得来,则按

28、最小误差准则,最佳门限可确定如下:设直方图暗区为背景,亮区为物体,即,设最佳门限为T,则使所有灰度低于T的像元都作为背景点考虑,而灰度级在T以上的像元皆作为物体考虑,这样必然引起误差,把物体点错分为背景点的误差概率为 (2.28)同理把背景点错分为物体点的误差概率为 (2.29)因此总的误差概率 (2.30)为求总的误差概率为最小,解,结果为,代入正态公式并取对数得 (2.31)当时,上式解可简化为 (2.32)当先验概率相等,即时,则 (2.33)恰为二者均值。以上分析可知,只要和 已知以及和为正态,容易计算其最佳门限值T。实际密度函数的参数常用拟合法来求出参数的估值。如最小均方误差拟合估计

29、来会计参量,并使拟合的均方误差为最小。例如,设想理想分布的密度为正态,实际图像直方图为,用离散方式其拟合误差为 (2.34)式中N为直方图横坐标。通常这种拟合求密度函数的几个参数很难解,只能用计算机求数值解,但若为正态分布时只需求均值和标准差二参数即可。2.4.3 区域生长 区域生长是一种典型的串行区域分割技术,在人工智能领域的计算机视觉研究中是一种非常重要的图像分割方法,其主要思想是将事先选中的种子点周围符合某种相似性判断的像素点集合起来以构成区域。在具体处理时,是从把一幅图像分成许多小区域开始的,这些初始小区域一般是小的邻域,甚至是单个的像素点。然后通过定义适当的区域内部隶属规则而对周围像

30、素进行检验,对于那些符合前述隶属规则的像素点就将其合并在内,否则将其据弃,经过若干次迭代最终可形成待分割的区域。在此提到的“内部隶属规则”可根据图像的灰度特性、纹理特性以及颜色特性等多种因素来作出决断。从这段文字可以看出,区域生长成功与否的关键在于选择合适的内部隶属规则(生长准则)。 对于基于图像灰度特性的生长准则,可以用下面的流程对其区域生长过程进行表述,如图2.6所示。 图 2. 6 区域生长流程图第三章 图像处理软件设计3.1 图像处理软件开发工具的选择3.1.1 BMP图像格式的结构 数字图像存储的格式有很多种,如BMP、GIF、JPEG、TIFF等,数字图像处理中最常用的当属BMP,

31、本课题采集到的图片也是用BMP格式存储的,要对这种格式的图片进行处理,那么首先就要了解它的文件结构。(1)BMP文件格式简介BMP(Bitmap-File)图形文件是Windows采用的图形文件格式在Windows环境下运行的所有图象处理软件都支持BMP图像文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把这种BMP图像文件格式称为设备相关位图DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP图像文件与显示设备无关,因此把这种BMP图像文件格式称为设备无关位图

32、DIB(device-independent bitmap)格式,目的是为了让Windows能够在任何类型的显示设备上显示所存储的图像。BMP位图文件默认的文件扩展名是BMP或者bmp(有时它也会以.DIB或.RLE作扩展名)。(2)BMP文件构成BMP文件由位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、颜色信息(color table)和图形数据四部分组成。它具有如表3.1所示的形式。表 3. 1 BMP位图结构位图文件的组成结构名称符号位图文件头(bitmap-file header)BITMAPFILEHEADERb

33、mfh位图信息头(bitmap-information header)BITMAPINFOHEADERbmih颜色信息(color table)RGBQUADaColors图形数据BYTEaBitmapBits3.1.2 软件开发工具的选择(1)Win32 APIMicrosoft Win32 API(Application Programming Interface)是Windows的应用编程接口,包括窗口信息、窗口管理函数、图形设备接口函数、系统服务函数、应用程序资源等。Win32 API是Microsoft 32位Windows操作系统的基础,所有32位Windows应用程序都运行在Wi

34、n32 API之上,其功能是由系统的动态链接库提供的。 (2)Visual C+Visual C+是Microsoft公司出品的可视化编程产品,具有面向对象开发,与Windows API紧密结合以及丰富的技术资源和强大的辅助工具。Visual C+自诞生以来,一直是Windows环境下最主要的应用开发系统之一,Visual C+不仅是C+语言的集成开发环境,而且与Win32紧密相连,所以利用Visual C+可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件。Visual C+是一个很好的可视化编程环境,它界面友好,便于程序员操作。Visual C+可以充分利用MFC的优势

35、。在MFC中具有许多的基本库类,特别是MFC中的一些,利用它们可以编写出各种各样的Windows应用程序,并可节省大量重复性的工作时间,缩短应用程序的开发周期。使用MFC的基本类库,在开发应用程序时会起到事半功倍的效果。Visual C+具有以下这些特点:简单性:Visual C+中提供了MFC类库、ATL模板类以及AppWizard、ClassWizard等一系列的Wizard工具用于帮助用户快速的建立自己的应用程序,大大简化了应用程序的设计。使用这些技术,可以使开发者编写很少的代码或不需编写代码就可以开发一个Windows应用程序。灵活性:Visual C+提供的开发环境可以使开发者根据自

36、己的需要设计应用程序的界面和功能,而且,Visual C+提供了丰富的类库和方法,可以使开发者根据自己的应用特点进行选择。可扩展性:Visual C+提供了OLE技术和ActiveX技术,这种技术可以增强应用程序的能力。使用OLE技术和ActiveX技术可以使开发者利用Visual C+中提供的各种组件、控件以及第三方开发者提供的组件来创建自己的程序,从而实现应用程序的组件化。使用这种技术可以使应用程序具有良好的可扩展性。(3)MFCMFC(Microsoft Foundation Class)是Microsoft公司用C+语言开发的一套基础类库。直接利用Win32 API进行编程是比较复杂的

37、,且Win32 API不是面向对象的。MFC封装了Win32 API的大部分内容,并提供了一个应用程序框架用于简化和标准化Windows程序的设计。MFC是Visual C+的重要组成部分,并且以最理想的方式与其集成为一体。主要包括以下各部分:Win32 API的封装、应用程序框架、OLE支持、数据库支持、通用类等。3.2 EAN-13码简介人们日常见到的印刷在商品包装上的条码,自本世纪70年代初期问世以来,很快得到了普及并广泛应用到工业、商业、国防、交通运输、金融、医疗卫生、邮电及办公室自动化等领域。条码按照不同的分类方法,不同的编码规则可以分成许多种,现在已知的世界上正在使用的条码就有25

38、0种之多。本章以EAN条码中的标准版EAN-13为例说明基于数字图像处理技术,对EAN条码图像识别的软件开发方法。 EAN码是国际物品编码协会在全球推广应用的商品条码,是定长的纯数字型条码,它表示的字符集为数字09。由前缀码、厂商识别代码、商品项目代码和校验码组成。前缀码是国际EAN组织标识各会员组织的代码,我国为690695;厂商识别代码是EAN会员组织在EAN前缀码的基础上分配给厂商的代码;商品项目代码由厂商自行编码;校验码上为了校验前面12位或7位代码的正确性。 3.2.1 EAN-13条码的结构 EAN-13码是按照“模块组合法”进行编码的。它的符号结构由八大部分组成:左侧空白区、 起

39、始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符及右侧空白区,见表3.2。尺寸:37.29mm 26.26mm ;条码:31.35mm ;起始符/分隔符/终止符:24.50mm ;放大系数取值范围是0.802.00;间隔为0.05。表 3. 2 EAN-13码结构左侧空白区起始符左侧数据符中间间隔符右侧数据符校验符终止符右侧空白区9个模块3个模块42个模块5个模块35个模块7个模块3个模块9个模块EAN-13码所表示的代码由13位数字组成,其结构如下:结构一:X13X12X11X10X9X8X7X6X5X4X3X2X1其中:X13X11为表示国家或地区代码的前缀码;X10X7为制造厂商

40、代码;X6X2为商品的代码;X1为校验码。结构二: X13X12X11X10X9X8X7X6X5X4X3X2X1其中:X13X11为表示国家或地区代码的前缀码;X10X6为制造厂商代码;X5X2为商品的代码;X1为校验码。在我国,当X13X12X11为690、691时其代码结构同结构一;当X13X12X11为692时其代码结构为同结构二。EAN条码的编码规则,见表3.3:起始符:101;中间分隔符:01010;终止符:101。A、B、C中的“0”和“1”分别表示具有一个模块宽度的“空”和“条”。表 3. 3 EAN条码的编码规则数据符左侧数据符右侧数据符 A BC000011010100111

41、111001010011001011001111001102001001100110111101100301110101000011000010401000110011101101110050110001011100110011106010111100010110100007011101100100011000100801101110001001100100090001011001011111101003.2.2 条码的编码方法 条码的编码方法是指条码中条空的编码规则以及二进制的逻辑表示的设置。众所周知,计算机设备只能识读二进制数据(数据只有“0”和“1”两种逻辑表示),条码符号作为一种为计算机信息处理而提供的光电扫描信息图形符号,也应满足计算机二进制的要求。条码的编码方法就是通过设计条码中条与空的排列组合来表示不同的二进制数据。一般来说,条码的编码有两种:模块组合和宽度调节法。 模块组合法是指条码符号中,条与空是由标准宽度的模块组合而成。一个标准宽度的条表示二进制的“1”而一个标准的空模块表示二进制的“0”。商品条码模块的标准宽度是0.33mm ,它的一个字符由两个条和两个空构成,每一个条或空由14个标准宽度模块组成。 宽度调节法是指条码中,条与空的宽窄设置不同,用宽单元表示二进制的“1” ,而用窄单元表示二进制的“0”,宽窄单元之比一般控制在23之间。3.1 系统界面设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号