当前位置:文档之家› 基于VC++的图像处理软件模块设计

基于VC++的图像处理软件模块设计

基于VC++的图像处理软件模块设计
基于VC++的图像处理软件模块设计

本科生毕业论文(设计)

题目: 基于VC++的嵌入网页图像处理软件模块设计

姓名:

学院: 工学院

专业: 电子信息科学与技术

班级: 信息84

学号:

指导教师: 职称:

2012 年5月 1 日

目录

摘要: (1)

关键词: (1)

Abstract: (1)

Key words: (1)

引言 (1)

1论文概述 (1)

1.1课题的研究目的和意义 (1)

1.2国内外发展状况 (2)

1.3研究方法与手段 (2)

1.3.1 运行环境 (2)

1.3.2 开发环境 (3)

2图像处理相关技术概述 (3)

2.1 VC++6.0简介 (3)

2.2 VC++各类文件简介 (3)

2.3 MFC类库 (4)

3.图像处理软件的总体设计 ................................ 错误!未定义书签。

3.1 需求分析 ............................................ 错误!未定义书签。

3.2 图像处理软件的目标设计 .............................. 错误!未定义书签。

3.3图像处理系统功能描述................................. 错误!未定义书签。

4.图像设计基础 (4)

4.1图像基础 (4)

4.1.1数字图像的基本概念 (4)

4.1.2调色板 (5)

4.1.3调色板的概念 (5)

4.2 与设备无关位图(DIB) (6)

4.2.1 DIB位图的结构 (6)

4.2.2 定义DIB处理函数集 (7)

4.2.3 CDib类的设计目标 (8)

5 数字图像处理 (10)

5.1图像处理的基本方法 (11)

5.2图像处理软件设计 (11)

5.2.1设计步骤和要点 (11)

5.2.2主界面设计 (12)

5.2.3菜单设计 (13)

5.2.4工具栏设计 (14)

5.3数字图像处理结果 (14)

6评估与结论 (17)

致谢 (17)

参考文献 (18)

基于VC++的嵌入网页图像处理软件模块设计

电子信息科学与技术专业学生

指导教师

摘要:随着计算机技术和网络技术的快速发展,社会生产力和精确农业技术也得到逐步发展,人们对农田除害智能识别技术的要求也越来越高,因此,需要将机器人技术计算机技术网络技术等应用于农田除害。该课题在windows XP平台上实现,采用Visual C++作为编程工具,采用面向对象的程序设计技术完成一个嵌入网页的图像处理(图像只要指农田害虫)的应用软件。图形方面主要是设计图形基类,以及继承图形基类的具体图形类。此外,通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础。系统的优点有:充分体现了面向对象的设计思想,充分运用了C++的特性,比如封装、继承、多态。程序结构清晰,可读性好,程序中做了充分的注释。

关键词:Visual C++;图像处理;农田害虫;

Based on VC++ image processing software module design of

embedded webpage

Student majoring in Electronic and Information Science and Technology

Tutor

Abstract:With the rapid development computer technology and network technology, the development of social productive forces and the development of precision agriculture technology people's demand of agricultural pest identification technology more and more high need to robotics technology, computer technology network used in agricultural pesticides. The topic realizes under the windows XP platform, use Visual C++ as a programming tool, use object-oriented programming techniques to achieve a image processing software. The graph aspect is designs the graph base class , as well as inherits the graph base class’s specific graph class. Through independent function's encapsulation, for the future’s needs of the graphic images lays the foundation. The system merit has: the object-oriented design’s thought application of the C++ properties, for example encapsulation, polymorphism, and inheritance. Program’s structure is clear, good readability, codes has the full annotation in the program. The graph plan’s part has avoided complicated structure of the traditional switch case. Easy expansion and transplantation.

Key words:Visual C++;image processing;Agricultural pest;

引言数字图像处理( Digital Image Processing) 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。图像处理中, 输入的是质量低的图像, 输出的是改善质量后的图像, 图像处理的方法多种多样, 一般可分为图像变换、图像增强和复原、图像分割、图像压缩编码、图像描述和图像识别等几类。目前,图像处理的应用领域已涉及到人们工作生活中的方方面面。

1论文概述

1.1课题的研究目的和意义

本文所介绍的数字图像处理系统是一款简单而又实用的灰度级图像处理软件, 是基于Windows 平台的应用程序,利用Visual C+ + 6. 0 的编译环境提高了系统的开发速度,实现数字图像的查看与编辑操作[1]。

应该说,目前已有种类繁多的图形图像处理专用软件工具,如AutoCAD、和PhotoShop 等,利用这些图形图像处理软件可以实现同样的功能。即便如此,研究这些图形图像处理技术仍具有一定使用价值。首先,利用一个设计良好的简单的小图形处理程序可以用于教学演示的目的,展示基本的图形图像处理技术和面向对象技术在这一领域的应用效果。其次,在很多应用中需要提供自己的图形图像处理功能,例如,在一个正在连接网

络的任务中可能就希望显示一幅示意性的动画,此时,不能依赖一个图形软件来实现。因此,通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础[2]。此外,借助Visual C++语言这种典型的面向对象编程环境,能够充分挖掘硬件的潜能,得到性能优良的程序代码。

1.2国内外发展状况

数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。

20世纪20年代,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。到20世纪50年代,数字计算机发展到一定的水平后,数字图像处理才真正引起人们的兴趣。1964年美国喷气推进实验室用计算机对“徘徊者七号”太空船发回的大批月球照片进行处理,收到明显的效果。20世纪60年代末,数字图像处理具备了比较完整的体系,形成了一门新兴的学科。20世纪70年代,数字图像处理技术得到迅猛的发展,理论和方法进一步完善,应用范围更加广泛。在这一时期,图像处理主要和模式识别及图像理解系统的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。20世纪70年代后期到现在,各个应用领域对数字图像处理提出越来越高的要求,促进了这门学科向更高级的方向发展。特别是在景物理解和计算机视觉(即机器视觉)方面,图像处理已由二维处理发展到三维理解或解释。近年来,随着计算机和其它各有关领域的迅速发展,例如在图像表现、科学计算可视化、多媒体计算技术等方面的发展,数字图像处理已从一个专门的研究领域变成了科学研究和人机界面中的一种普遍应用的工具。

图形与图像处理是计算机最早应用的领域之一,从简单的图形显示到复杂的图像分析、模式识别,使得图形与图像处理技术不断走向成熟,国内外也涌现出了大量的软件。例如,ACDSee、PhotoShop、CorelDraw等,这些软件提供了一般显示、特殊显示、特技处理等大量复杂的功能。图形处理技术得益于图形学的发展,而从目的上可以将图像处理技术分为两类,分别是图像识别技术和图像处理技术。针对图像处理技术,可以是旋转、亮度、对比度、饱和度、RGB调节、调节图像尺寸等属性方面的处理技术和添加文字、图像增强、弱化、水印、特效、镂空等处理方法。甚至为了达到更精微的处理效果,这些软件还使用了图层。

随着网络和多媒体技术的发展和应用,体现在应用软件中的是一些更具有“现代感”的应用,例如,支持各种常用图形、RAW原始图片、Flash动画的快速浏览、编辑、保存、导入、导出,甚至还可以提供一些趣味涂鸦、字符素描之类的应用,以体现人的个性[3]。事实上,应用软件中常常需要采用其中的某些技术来处理相关的问题。例如,一个支持简单形状辅助设计的软件并不需要支持特效方面的方法。

在软件设计的支撑环境和技术上,C++是一个很好的选择,这主要是考虑到如下因素,主要包括代码效率高,处理底层问题能力强,支持面向对象的程序设计方法。利用C++技术可以实现对程序代码和数据的良好封装,使之能够具有良好的重用性。

1.3研究方法与手段

1.3.1 运行环境

运行环境主要介绍了硬件环境和软件环境。

(1) 硬件环境

①处理器:Inter Pentium 166 MX 或更高

②内存:32MB或更高

③硬盘空间:1GB或更高

④显卡:SVGA显示适配器

(2) 软件环境

操作系统:Window 98/ME/2000/XP

1.3.2 开发环境

开发环境主要介绍了本系统采用的操作系统、开发语言。

(1) 操作系统:Windows XP

(2) 开发语言:C++

(3) 开发环境:Visual C++ 6.0

2图像处理相关技术概述

2.1 VC++6.0简介

面向对象程序设计(Object-Oriented Programming,简称OOP)方法已出现近30年,在20世纪90年代己成为程序设计的主流方向。面向对象程序设计语言是现代程序开发的主要工具。

程序包含两类基本的元素,即数据和操作数据的指令集(称为代码)。传统的程序设计语言以设计代码为核心,程序设计实际上就是指定程序指令的先后次序,数据表示必须适应代码的设计。模块化程序设计方法将完成某一功能的指令集组成一个相对独立的程序模块(即函数或过程),使得程序的结构清晰,便于有效的维护,对程序设计技术有很大的促进。但由于结构化程序设计方法并不能保证各程序模块之间真正的相互独立,程序设计者在设计一个模块时很难完全排除其他模块的影响。随着程序规模的增大,各模块之间的相互影响导致一些难于测试,难以定位发现的错误,增加了程序开发和维护的困难。面向对象程序设计方法主要以数据为中心,代码是围绕着需要处理的数据而设计的[4]。

VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单[5]。

2.2VC++各类文件简介

.dsw文件

这种类型的文件在VC中级别是最高的,成为Workspace文件。在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。

.dsp文件

以dsp为扩展名的文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。

.clw文件

以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息的,这些信息是VC中的ClassWizard工具管理和使用类的信息来源。

readme.txt文件

对应每个应用程序有一个readme.txt文件,这个文件中列出了应用程序中用到的所有的文件信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的认

识。

.h和.cpp文件

在应用程序中大量应用的是以h和cpp为扩展名的文件,以h为扩展名的文件称为头文件;以cpp为扩展名的文件称为实现文件,一般说来h为扩展名的文件与以cpp为扩展名的文件是一一对应配合使用的,在h为扩展名的文件中包含的主要是类的定义,而在cpp为扩展名的文件中包含的主要是类成员函数的实现代码。

.rc文件

VC中以rc为扩展名的文件称为资源文件,其中包含了应用程序中用到的所有的windows资源,需要注意的是rc文件可以直接在VC集成环境中以可视化的方法进行编辑和修改[6]。

2.3 MFC类库

MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是Windows下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分。

微软基础类库由两部分组成:一是通常所说的C++类库,是MFC类库的主体部分,这些类构成了MFC应用程序框架。二是MFC预定义宏、全局变量和全局函数,是MFC类库的辅助部分,它们都是MFC进行Windows应用程序开发不可缺少的组成部分。MFC使得开发windows应用程序比以往任何时候都要容易,虽然我们要编写的应用程序在功能上千差万别,但是从本质上来讲,都可以划归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,并根据需要来不断完善对象的功能。

正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大的功能足以完成我们程序中的绝大部分所需的功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。需要指出的是MFC类库在提供的对象的各种属性和方法都是经过谨慎的编写和严格的测试,可靠性很高,这就保证了使用MFC类库不会影响程序的可靠性和正确性。

3.图像设计基础

3.1图像基础

3.1.1数字图像的基本概念

人眼看到的任何自然界的图像都是连续的模拟图像,其形状和形态表现由图像各位置的颜色所决定。色度学理论认为,任何颜色都可由红(Red)、绿(Green)、蓝(Blue)3种基本颜色按不同的比例混合得到。红、绿、蓝被称为三原色,简称RGB三原色。因此,自然界的图像可用基于位置坐标的三维函数来表示,即

f(x,y,z)=(fred(x,y,z),fgreen(x,y,z),fblue(x,y,z))) (3-1) 其中f表示空间坐标为(x,y,z)位置点的颜色,fred、fgreen、fblue分别表示该位

置点的红、绿、蓝3种原色的颜色分量值。它们都是空间的连续函数,即连续空间的每—点都由一个精确的值与之相对应。

为了研究的方便,主要考虑平面图像。平面上每一点仅包括两个坐标值。因此,平面图像函数是连续的二维的数,即

f(x,y)=(fred(x,y),fgreen(x,y),fblue(x,y))) (3-2)

图像可以分为黑白图像和彩色图像。所谓黑白图像,就是图像中每一点都不是彩色的,即每—点的红、绿、蓝颜色分量值都相等,即

fred=fgreen=fblue (3-3)

对于黑白图像,其f(x,y)表示(x,y)位置处的灰度值。

由于计算机仅能处理离散的数据,所以如要用计算机来处理图像,连续的图像函数必须转化为离散的数据集,这一过程叫做图像采集[7]。图像采集由图像采集系统完成,如图3-1所示。图像采集系统包括3个基本单元,即成像系统、采样系统和量化器。

图3-1 图像采集系统

3.1.2调色板

现实世界的颜色种类是无限的,但计算机显示系统所能表现的颜色数量是有限的。因此,为了使计算机能最好地重现实际图景,就必须采用一定的技术来管理和取舍颜色。按表现能力的不同,现代计算机的显示系统可以分为以下3种。

(1) VGA:能用640×480的分辨率同时显示16种颜色。

(2) SuperVGA:能用640×480的分辨率同时显示256种颜色

(3) 真彩色:能同时显示16777216种颜色。

所谓真彩色(True Color),是指显示出来的图像的颜色与真实世界中的颜色非常自然逼真、人眼难以区分它们的差别。通常使用RGB表示法来表现真彩色图像,即用3字节(24位)来表示—个真彩色像素的颜色值,红、绿、蓝三原色的浓度分别用一字节(8位)来表示。Windows采用该方法来表现颜色,其SDK提供一个名为RGB的宏来将不同的R、G、B颜色值转化为24位的颜色值,其原型如下所示。

COLORREF RGB(BYTE bRed, BYTE bGReen, BYTE bBlue)(3-4)

COLORREF是表示颜色值的数据类型,是一个32位的无符号长整数;bRed、bGreen 和bBlue分别表示红、绿、蓝三原色的浓度,它们的类型是BYTE,长度是8位。其十六进制数据表示形式如下所示。

0x00bbggrr (3-5) 字节rr、gg、bb比分别表示红、绿、蓝三原色的浓度,最高位字节为0,用于保留与将来的系统兼容[8]。

3.1.3调色板的概念

在真彩色系统中,每一个像素的值都用24位来表示。像素值与真彩色颜色值可以一一对应,所以像素值就是所表现的颜色位。但对于仅能同时显示16色或256色的系

统,每一个像素仅能分别采用4位或8位来表示,像素值与真彩色颜色值不能一一对应,用像素值代表颜色值的方法将不能得到最佳的效果,而必须采用调色板技术。所谓调色板就是在16色或256色显示系统中,由图像中出现最频繁的16种或256种颜色所组成的颜色表。对这些颜色按4位或8位,即0至15或255进行编号,每一编号代表其中的一种颜色。这种颜色编号叫做颜色的索引号,4位或8位的索引号与24位的颜色值的对应表叫做颜色查找表。使用调色板的图像叫做调色板图像。它们的像素值并不是颜色值,而是颜色在调色板查找表中的索引号[9]。

为了保证Windows的基本显示界面的一致性,Windows保留了一个有20种颜色的内部系统调色板,用来绘制窗口的图标、边界和按钮等通用界面。该调色板在所有的显示设置中都保持不变。在16色的显示系统中,系统调色板通过16种颜色的抖动来产生其余4种颜色。在256色的显示系统中,Windows也保持该20种颜色的次序,其余的236种颜色由当前的调色板分配[10]。

3.2 与设备无关位图(DIB)

Windows3.1以上版本提供了对设备无关位图DIB的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。与DDB相比而言,DIB是一种外部的位图格式,经常存储为以.BMP为后缀的位图文件(有时也以DIB为后缀)。DIB位图还支持图像数据的压缩[11]。大多数图像处理都是基于与设备无关位图(DIB)来进行讨论的,而MFC中没有处理DIB位图的类,这就给编程带来了很大困难。所以需要建立一个处理DIB位图的专用类,CDIB类,在其中封装必要而有效的处理函数。

3.2.1 DIB位图的结构

DIB位图文件的结构如图3-2所示,包括位图文件头结构BITMAPEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据4部分。

图3-2 DIB位图的结构

上面结构中各数据域的意义如表3-1所示。

表3-1 Windows位图结构数据域的含义

结构数据域含义

BITMAPFILEHEADER Bftype 字节“BM”

bfSize 文件总字节数

bfResrved1 0

bfResrved2 0

bfOffBits 位图数据距文件头的偏移量BITMAPINFOHEADER biSize 本结构大小的字节数

biWidth 位图的宽度,单位为像素点

biHeight 位图的高度,单位为像素点

biPlanes 1

bitBitCount 像素的位数(1,4,8,24)

biCompression 压缩方式(0表示不压缩)

biSizeImage 位图数据的字节数

biXpelsPerMeter 水平分辨(像素点每米)

biYpelsPerMeter 垂直分辨(像素点每米)

biClrUsed 图像中使用的颜色数

biClrImportant 图像中重要的颜色数

RGBQUAD rgbBlue 蓝色的比例

rgbGreen 绿色的比例

rgbRed 红色的比例

rgbReserved 0

DIB位图像素的位数可为1、4、8和24,其图像的颜色数分别为2、16、256和真彩色其中前3种具有对应的颜色表,而24位位图的颜色表为空,其像素值就是颜色值[12]。

3.2.2 定义DIB处理函数集

由于DIB位图能独立地保存固有的图像处理信息,能在不同的系统中重显其图像,因此成为Windows环境中的基本图像格式。由于MFC中没有涉及处理DIB位图的类,因此,利用Visual C++进行DIB位图编程时只能使用“非面向对象”,即直接调用Win32 SDK 的有关API函数。因此,我们要定义一个处理DIB位图的专用类,比如一个名为CDib 的类,在其中封装必需而且有效的DIB数据成员和处理函数。

但是,在构思这样一个类时,会遇到许多困难。因为,即使是Win32 SDK也没有为我们提供多少可以直接处理DIB位图的API函数。因此,为了实现这样的类,就必须先设计好一套处理DIB位图的完整函数集,这将是实现CDib类函数时,调用该函数集,也将使类的代码更简练。MFC的类实现也是以Win32 SDK API函数为基础的,因此在设计CDib类时,首先要设计一套对应的函数集。

定义的DIB处理函数如表3-2所示。

表3-2 DIB处理函数集

函数类型函数名功能

初始化函数CreateDIB 创建一个空的DIB

CreateDefaultDIB 用当前的系统调色板创建一个空的DIB DestroryDIB 释放DIB内存块

LoadDIB 从DIB文件中装载DIB数据

SaveDIB 读DIB存到文件中

ReadDIBFile 读DIB存到内存中

BytesPerLine 获取DIB每行所占的字节数DIBlockSize 获取DIB数据块的大小

属性函数DIBHeight 获取DIB高度

DIBWidth 获取DIB宽度

DIBNumColors 获取DIB的颜色数

DIBBitCout 获取DIB的图像颜色位数

FindDIB Bits 获取DIB数据块的地址(指针)PletteSize 获取DIB的调色板中的颜色表项数PaintBitmap 显示DDB

PaintDIB 显示DIB

PaintDIB 显示DIB

DIBToDIBSetion 将DIB数据块转换为DIBSECTION DIBSectionToDIB 将DIBSECTION转换为DIB数据块ConvertDIBFormat 修改的格式

BitmapToDIB 将DDB转换为DIB ChangeBitmapFormat 修改DDB的格式

DIBToBitmap 将DDB转换为DIB ChangeDIBFormat 基于当前的系统调色板修改DIB CreateDIBPalette 创建DIB调色板

DisplayPalette 显示调色板

CopyPalette 拷贝调色板

GetSystemPalette 获取当前的系统调色板PalEntriesOnDevice 获取设备的调色板表项数CreateIdentifyPalette创建等同调色板MapDIBColorsToPalette按指定的调色板映射DIB的颜色CopyScreenToBitmap 将屏幕显示转换为一个DDB CopyWindowToBitmap 将指定窗口的显示转换为一个DDB CopyClientRectToBitmap将指定窗口用户区的指定区域显示转换CopyScreenToDIB 为一个DDB

CopyWindowToDIB 将指定窗口的显示转换为一个DIB

显示函数

操作函数

调色板函数

捕获函数

为了使用方便,将上述函数的声明及相关的常量、宏及数据类型定义放在文件DIBAPI.H中,而将所有函数的代码放在文件DIBAPI.CPP中。

3.2.3 CDib类的设计目标

3.2.3.1功能

实现图像处理的基础是设计一个解释位图的DIB类(名CDib),基本功能如下所述。

(1) 多种形式的构造函数,包括创建空DIB、从DDB创建、从DIB句柄创建、从DIB数据块指针创建及从屏幕或窗口显示创建等;

(2) 支持拷贝构造函数和赋值运算;

(3) DIB文件的读、写操作;

(4) 从资源中装载DIB位图;

(5) DIB的显示;

(6) 提供DIB的空间、颜色和格式特征等信息;

(7) DDB与DIB的相互转换;

(8) DIB格式转换;

(9)IB调色板操作;

(10) 能获取DIB位图数据的句柄;

(11) 能生成DIB数据的拷贝。

3.2.3.2父类

由于MFC中已有一个支持DDB操作的CBitmap类,因此,很直观的想法是,以CBitmap 类为父类派生出的CDib类。但是,从长远考虑,这样做并没有什么好处。首先,CBitmap 类是为DDB的操作而设计的,其中没有处理DIB的功能,因此CDib类不能从中继承任何可用的功能。其次,CBitmap类是从CGdiobject中派生来的,CBitmap类以及它从CGdiobject类继承来的数据成员和功能函数对CDib类来说都是不合适的,也是多余的。此外,CBitmap类没有提供有效的文件操作机制。而DIB主要是一种“外部”位图,即它主要以文件形式进行存储和交换,所以CDib类应该能很好的处理文件操作。

MFC中的CObject类是MFC中其他大多数类的根类和基类。它不但提供许多有用的特性,还包括对文件串行化的支持,运行时类信息和对象诊断的输出等。如果从CObject 类派生类,则可继承该类的这些特性。另外,CObject类具有最低限度的成员数据和函数,从CObject类派生类所付出的代价是最低的。因此,采用CObject类作为CDib类的父类是很合理的。

从CObject类派生一个类时,可以从如下4个层次的功能中进行选择。

(1)基本功能:不支持运行时的类信息和串行化,但包含内存诊断处理;

(2)基本功能加上对运行时的类信息的支持;

(3)基本功能加上对运行时的类信息和动态创建的支持;

(4)基本功能加上对运行时的类信息、动态创建和串行化的支持;

CObject类的派生类利用几个宏来实现对上述功能的支持,如表3-3所示。

继承下来的特性。串行化指在文件中读写对象的过程,MFC把CArchive类的对象作为要串行化的对象和存储媒体之间的桥梁。CArchive类对象用重载的插入操作符(<<)和抽取操作符(>>)来执行读写操作。

要在类中支持串行化,需要在定义类时做如下操作:

(1)以CObject类为父类来派生类;

(2)覆盖CObject类的虚函数Serialize;

(3)在类的说明使用DECLARE_SERIAL宏;

(4)定义一个不带参数的构造函数;

(5)在类的实现文件中IMPLEMENT_SERIAL宏。

3.2.3.3数据封装

面向对象方法的一个重要特征就是数据封装。即将类的成员数据隐藏在类中,外界只能通过类的成员函数来操作类的成员数据。这是面对对象方法的重要有点,它可以保护类中的数据不受外部的意外修改。但是,过分“纯粹”的数据封装,需要付出降低程序效率的代价。特别是在设计像CDib这样需要大量使用Win32 API函数的类时,这种缺陷特别突出。因为操作DIB的API函数大多需要一些DIB的属性作为参数。如果硬要将这些属性封装起来,则需要在类中重新实现许多Win32 API函数。这不但要花费很大的精力,而且还可能因此而产生错误和低效。

所以,在设计CDib时应采用既尽可能保证数据非封装,又能保证效率的提高。3.2.3.4继承

CDib类的另一个设计目标应该考虑到,今后可能需要从CDib类中派生子类,即注意其可继承性。通过将有关的成员函数定义为虚函数,可以保证在派生类中重载它们,以支持继承中的多样性。

4 数字图像处理

图像处理就是用一系列特定操作来改变图像的像素,以达到特定的目标,比如使图像跟清晰,或从图像中提取某些特定的信息等。数字图像处理是现代图像处理的主要方法,具有再现性好,精度高,适用面广和灵活性大的优点。

数字图像处理由数字处理系统完成,其结构如图4-1所示。它主要包括图像采集系统、计算机图像处理系统和图像输出系统3部分。

图4-1 图像处理系统

计算机图像处理系统由计算机软硬件系统组成。计算机图像处理的软件系统是基于数字图像处理的理论和算法而设计的一系列程序,用以实现图像的增强、变换、变形、压缩和彩色处理等操作。

数字图像处理的内容非常丰富,是现代计算机的重要应用方向,从功能上可以将数字图像处理划分为3大类,如图4-2所示。

图4-2 数字图像处理功能划分

从图像处理对图像像素的处理方式上可以划分为点处理和区域处理两种。点处理是一种输出像素值仅取决于输入像素值的图像处理方法;区域处理的输出像素值不仅与输入像素值有关,而且与输入像素在一定范围内的相邻像素值有关。

4.1图像处理的基本方法

基本的图像处理方法可分为点处理和区域处理两类。

点处理相对较简单,只能改变图像的灰度分布,但不会改变图像内的空间关系。点处理可以按预定的方式改变图像的灰度直方图。最常用的点处理是灰度直方图均衡。区域处理在处理某一像素时,利用与该像素相邻的一组像素,经过某种变换得到处理后图像中某一点的像素值。目标像素的邻域一般是由像素组成的二维矩阵,该矩阵的大小为奇数。目标像素位于该矩阵的中央,即目标像素就是区域的中心像素。经过处理后,目标像素的值为经过特定算法计算后所得的结果。区域中心像素周围的那些像素值在二维方向上提供了图像的亮度变化趋势的信息。图像中像素的亮度在一定距离上的变化速率称为图像的空间频率。区域处理将改变图像的空间频率信息,减缓或增强图像中的某些特定的频率分量[13]。

主要的区域处理算法有卷积法、中值滤波法和Sobel边缘检测法。我们这里只介绍卷积法。

(1) 卷积原理

卷积可以简单地看成加权求和的过程。卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。这种权矩阵叫做卷积核,区域中的每个像素分别与卷积核中的每个元素相乘,所有乘积之和即为区域中心像素的新值。卷积核中各元素叫做卷积系数。卷积核中卷积系数的大小、方向及排列次序决定了卷积的图像处理效果。大多数常用的卷积核都是3×3的,所有卷积核的行、列数都是奇数[14]。

(2) 低通滤波:图像平滑与模糊

低通滤波的基本思路是保留图像空间频率的低频成分,减少图像的高频成分。低通滤波可以降低图像中的视觉噪声,同时除去图像中的高频部分后,图像中那些本来不明显的低频成分就更容易识别了[15]。

(3) 高通滤波:图像锐化与清晰

高通滤波增强图像的高频空间频率成分,阻挡低频中间频率成分。相对于高频成分来说,低频成分被削弱了。在需要突出图像中的高频成分时,可对图像进行高通滤波。

(4) 平滑与锐化

对图像进行低通滤波将使图像平滑;而对图像进行高通滤波将使图像锐化。因此图像的平滑与锐化处理实际上就是对图像进行低、高通滤波,即用低、高通滤波器作为卷积核来对图像进行卷积处理。

(5) 图像描述的形态学方法

“形态学”是描述动植物形态和结构的一门生物学分支,这里借用来指一种图像处理的方法。图像处理的形态学方法是一种“数学形态学”方法,用来提取图像成分,并据此来对图像区域的形状进行表示和描述。数学形态学的数学语言是集合理论,其中的集合代表图像中物体的形状。图像处理中常用的数学形态学方法包括腐蚀、膨胀、开、闭、边缘提取和图像细化等。

4.2图像处理软件设计

4.2.1设计步骤和要点

用Visual C++编制ImageProcess的步骤和要点如下:

(1)使用AppWizard生成一个基于多文档的项目ImageProcess;

(2)将CImageProcessView类的基类设为CScrollView类;

(3)将DIBAPI.H,DIBAPI.CPP,DIB.H和DIB.CPP增加到ImageProcess项目中;(4)将String Table中的字符串资源IDR_TRANSFTYPE修改为:

\nDib\ nDib\ nDib Files (*.bmp; *.dib)\n.bmp\nImageProcess.Document\nImageP Document;

(5)在CImageProcessDoc类中增加一个表示CDib对象指针公共数据成员m_pDib,并在CImageProcessDoc类的构造函数中初始化它;

(6)在CImageProcessDoc类重载的成员函数Serialize的最开始处增加一行语句:

m_pDib->Serialize(ar);

(7)修改CImageProcessView类的OnInitialUpdate函数如下:

Void CImageProcessView:::OnInitialUpdate()

{

CScrollView::OnInitialUpdate();

CImageProcessDoc * pDoc =GetDocument();

Csize sizeTotal(pDoc->m_pDib->GetWidth(),

pDoc->m_pDib->GetHeight());

SetScrollSizes(MM_TEXT,sizeTotal);

CMainFrame *pAppFrame=( CMainFrame *) AfxGetApp()->m_pMainWnd;

ASSERT_KINDOF(CMainFrame, pAppFrame);

CRect rc;

PAppFrame->GetClientRect(&rc);

If (rc.Width() >= sizeTotal.cx && rc.Height() >= sizeTotal.cy && (sizeTotal.cx>0|| sizeTotal.cy>0))

ResizeParentToFit(FALSE);

}

(8) 在CImageProcessView:::OnDraw函数中调用CDib::Display函数显示DIB:Void CImageProcessView:::OnDraw (CDC*pDC)

{

CImageProcessDoc * pDoc =GetDocument();

ASSERT_VALID(pDoc);

If (!pDoc->m_pDib->IsEmpty())

pDoc-> m_pDib->Display(Pdc,0,0);

}

(9) 用ClassWizard给个菜单命令增加处理函数,包括COMMAND和UPDATA_COMMAND_UI 处理函数;

(10)各菜单命令的UPDATA_COMMAND_UI处理函数结构相同,在函数中,将菜单命令的有效条件设为m_pDib不为空;

(11)由于每一种图像处理算法都涉及一个处理的强度,需要调用一个相同的对话框来获取参数。先在资源编辑器中建立该对话框模版IDD_CONVOLUTE,用classWizard为它创建对应的对话框类,并在类代码中实现有关的代码;

(12)调用相应的处理函数实现每一种图像处理的处理函数;

(13)协调调色板;

(14)在项目工程中加入输入库winmm.lib,使Delay函数调用的timeGetTime函数能被正确连接。

4.2.2主界面设计

数字图像处理软件主界面,考虑到图像处理的方便,决定采用多文档界面。如图4-3所示。

图4-3 数字图像处理软件主界面

4.2.3菜单设计

主菜单如图4-4所示,包括文件、编辑、查看、窗口、图像变换、艺术效果、平锐、边缘检测、边缘增强等菜单项。

图4-4 数字图像处理软件主菜单

另外,图像变换菜单中含有快速傅里叶变换和余弦变换等子菜单;艺术效果中有浮雕和油画等子菜单;边缘检测中有Sobel边缘检测、Hough边缘检测、Canny边缘检测、均匀边缘检测和差异边缘检测等子菜单;边缘增强菜单中有垂直边缘和水平边缘等子菜单;图像形态学中有腐蚀、膨胀、开运算、闭运算,边缘提取等子菜单。如图4-5所示。

图4-5 数字图像处理软件子菜单

4.2.4工具栏设计

工具栏如图4-6所示,包括新建、打开、保存和关于等。

图4-6 数字图像处理软件工具栏

4.3数字图像处理结果

此处仅介绍几种经过处理后的图像,如图4-7所示,为图像原图。

图4-7 原图

经过一些数字图像处理软件处理过后,如图4-8、4-9、4-10、4-11、4-12所示。

图4-8 经过浮雕后的图像

图4-9 经过油画后的图像

图4-10 经过sobel边缘检测后的图像

图4-11 经过边缘增强后的图像

图4-12 经过中值滤波去噪后的图像

5评估与结论

本文主要研究图形图像系统的开发与设计。在设计之前查阅了有关图像格式、图像变换技术、图像处理技术以及VC++图形图像编程的资料,最终实现了图像系统的设计。系统基本上实现了图像变换、图像处理等功能。通过对独立功能的封装,可以为今后需要的图像的应用奠定基础。系统的优点具体表现在以下方面。

(1) 充分体现了面向对象的思想设计,充分运用了c++的特性,比如多态性、继承和重载。

(2)程序结构清晰可读性好,程序中做了充分的注释。

(3) 容易扩充和移植。

系统由于设计时间短,因此有许多考虑不到的地方,工作中的主要精力集中在图形系统的设计,设计了性能优化的几个类,在图像处理和图像格式转换方面因为网上已经有非常优秀的共享代码可供参考,自己再设计图像类就进行了重复工作,所以图像类是借用共享代码实现。在功能上还不够完善。计划在未来一段时间内完善本系统,将系统的功能扩展,使之成为一个功能较多、易用的图形图像处理软件。

致谢

本毕业设计的研究及学位论文的撰写都是在某某某老师的悉心指导下完成的。他严谨的科学态度和兢兢业业、诲人不倦的治学精神,精益求精的工作作风,深深地感染和激励着我。在整个毕业设计工作中,某老师始终给予我细心的指导和不懈的支持,对我的毕业设计帮助颇多。他宽以待人的高尚品格,为我树立了学习的榜样,并将使我受益终生。某老师不仅在学业上给我以耐心指导,同时还在思想、生活上给我以无微不至的关怀。在此,谨向某老师致以最崇高的敬意和最诚挚的感谢。

其次,非常感谢帮助过我的同学,当我面对困难,经历坎坷的时候给予我无私的鼓励和帮助,在此致以诚挚的谢意。

最后,感谢学校提供良好的学习平台,感谢母校每一位老师对我四年学习、生活的支持和鼓励,谢谢你们的教诲

路慢慢其修远兮,吾将上下而求索。我愿在未来的学习和工作过程中,以更丰厚的成果来答谢曾经关心、帮助和支持我的所有领导、老师、同学。

参考文献

[1] 严华峰.visual c++课程设计案例精编[M].中国水利水电出版社,2004.

[2] 孙雄勇.visual c++6.0入门与提高[M].中国铁通出版社,2003.

[3] 彭达.visual c++多媒体编程技术[M].人民邮电出版社,1999.

[4] DAVID J.KRUGLINSKI .visual c++技术内幕[M].清华大学出版社,1994.

[5] 黄庆生.精通visual c++6.0[M].人民邮电出版社,1999.

[6] 何斌.visual c++数字图像处理[M].人民邮电出版社,2002.

[7] 黄维通.Visual C++面向对象与可视化程序设计[M].清华大学出版社,2003.

[8] Buhle ELJ,Altschuler MD.Imaging in Three Dimensional Radiotherapy[J].uaIjzatjon in Biomedical Computing-VBC,1990,32(4):4-5

[9] 黄磊.C++编程艺术[M].清华大学出版社,2005.

[10] Hacker F L,Kocy H M,Bellerive M R,et a1.Beam Shaping for Conformal Fractionated

Stereotactic Radiotherapy[J].uaIjzatjon in Biomedical Computing-VBC, 1997,34(4):4-9

[11] 杨淑莹.VC++图像处理程序设计[M].清华大学出版社,2005.

[12] 陆宗骐.C/C++图像处理编程[M].清华大学出版社,2005.

[13] Lecy M,Fuchs H,Pizer SM,eta1.Volume Rendering in Radiation Treatment PlanningIn[J]. CRC Critical Reviews in Biomedical Engineering, 1998.15(5):397-409.

[14] Rosenman J,Cullip.High-performance Computing in Radiation Cancer Treatment[J].CRC

Critical Reviews in Biomedical Engineering,1992.20(5):391-402.

彩色图像处理

1种颜色 颜色定义:颜色是对象的一种属性,它取决于三个因素。 (1)光源-照射光的光谱特性或光谱能量分布 (2)物体-被照射物体的反射特性 (3)成像接收器(眼睛或成像传感器)-光谱能量吸收特性 2色模型 颜色模型,也称为颜色空间或颜色系统,是用于精确校准和生成各种颜色的一组规则和定义。其目的是在某些标准下以通常可接受的方式简化颜色规格。可以通过坐标系描述颜色模型,并且系统中的每种颜色都可以由坐标空间中的单个点表示。 RGB模型:此模型是行业中的颜色标准。通过更改红色和绿色蓝色三种颜色的亮度及其叠加,可以获得各种颜色。该标准几乎涵盖了人类视觉可以感知的所有颜色,并且是目前使用最广泛的颜色模型之一。

CMY模型:颜色合成方法由绿色,品红色和黄色三种基本原色组成。因为彩色显示不是直接来自光的颜色,而是光被对象吸收并被产生的残留光反射,所以CMY模型也称为减法混合模型。 CMYK模型:将黑色添加到CMY模型。 RGB和CMY之间的转换:在MATLAB中,可以通过imcompliance()函数轻松实现RGB和CMY之间的转换 cmy = imcomplement(rgb); rgb = imcomplement(cmy); HSI模型:HSI模型基于人类视觉系统,并通过使用色相,饱和度和强度三个元素直接描述颜色 @亮度是指人们感到光亮的阴影。光的能量越大,亮度越大。 @Hue是颜色的最重要属性,它决定颜色的本质,颜色的本质由反射光的主波长确定。不同的波长产生不同的色彩感觉。

@饱和度是指颜色的深度和强度,饱和度越高,颜色越深。饱和深度与白色的比率有关,白色比率越大,饱和度越低。 从RGB到HSI的颜色转换及其实现 数字; 子图(1,2,1); rgb = imread('plane.bmp)。 imshow(rgb); title('rgb'); 子图(1,2,2); hsi = rgb2hsi(rgb); imshow(hsi); title('hsi'); 从HSI到RGB的颜色转换及其实现 数字 子图(1,2,1);

嵌入式图像处理系统的设计与实现.

43682009,30(19 计算机工程与设计Computer Engineering and Design 0引言 传统的图像处理技术主要依赖于大批量的电子计算机设备,大批量的电子设备在使用和保养时产生巨大的经费开支,增加行业成本。而嵌入式设备成本低、能耗小、可靠性高、体积小、重量轻以及维护使用方便等诸多优势。将嵌入式技术与图像处理结合可以开发出成本更低,可控性、可移动性及可靠性更佳的嵌入式图像处理系统。 1硬件平台设计 本系统的硬件平台是标准的通用嵌入式平台,其基本构 成有嵌入式中央处理器(三星44B0X 、输入输出系统(9键的小键盘和4.3寸液晶显示触摸屏和存储体系(同普通的PC 一样也具有三层存储体系:缓存(位于处理器中、内存(SDARM 以及外存(NandFlash 以及各种通信和调试接口。具体如图1所示的硬件平台体系结构。 嵌入式系统不同与一般的PC ,一般不能直接接受来自键盘的命令,本系统中使用ucos 系统软件平台,所以也没有Shell 。本系统在上电或者复位时,将自动执行ROM 中的Boot-Loader (存于NorFlash 的固定地址:0x0 ,BootLoader 将对系统进行标准自检,若自检通过,则将自动引导位于NandFlash 中的二进制文件,其文件名固定为System.bin 。该文件即为嵌入式图像处理软件系统的镜像文件,自此图像处理系统启动运行。 2 嵌入式图像处理软件系统设计

2.1 总体设计思想 本系统主要解决的问题就是图像处理如何在嵌入式环境 收稿日期:2008-10-12;修订日期:2009-08-05。 嵌入式系统工程 宋凯,严丽平,甘岚:嵌入式图像处理系统的设计与实现 2009,30(19 4369 下的实现,由于嵌入式环境的特性(比如可供选择的编程语言较少,可供使用的API 较少等,所以笔者需要着力解决的问题是通用接口(比如BMP 文件的读入以及常用算法的移植。为了提高工组效率以及本软件系统的可移植性,笔者决定将常用的接口及图像处理算法均以API 的形式封装起来。这样在以后的开发工作中,只要调用封装后的API 即可,可以提高系统的通用性。 2.2功能模块设计 基于前面的阐述,本系统采用模块化设计,每个模块包含 了一类图像处理的算法,而单个模块中的每个算法在执行时只需调用封装好的API 即可。具体的功能模块设计是将算法分为7大模块:图像几何变换、边缘检测及轮廓跟踪、直方图修正、半影调和去抖动、图像彩色变换、图像平滑锐化和腐蚀膨胀细化算法。在这7大系统模块下面,再进行到每一级算法的映射。7个模块构成了系统的主体。主层次结构如图2所示。另外在每个模块中有包含了多个图像处理算法,比如图像几何变换模块就含有8种算法,其结构如图3所示。另外的6个模块其设计与之相似,不再赘述。

数字图像处理教学大纲(2014新版)

数字图像处理 课程编码:3073009223 课程名称:数字图像处理 总学分: 2 总学时:32 (讲课28,实验4) 课程英文名称:Digital Image Processing 先修课程:概率论与数理统计、线性代数、C++程序设计 适用专业:自动化专业等 一、课程性质、地位和任务 数字图像处理课程是自动化专业的专业选修课。本课程着重于培养学生解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下坚实的理论基础。主要任务是学习数字图像处理的基本概念、基本原理、实现方法和实用技术,并能应用这些基本方法开发数字图像处理系统,为学习图像处理新方法奠定理论基础。 二、教学目标及要求 1.了解图像处理的概念及图像处理系统组成。 2.掌握数字图像处理中的灰度变换和空间滤波的各种方法。 3.了解图像变换,主要是离散和快速傅里叶变换等的原理及性质。 4.理解图像复原与重建技术中空间域和频域滤波的各种方法。 5. 理解解彩色图像的基础概念、模型和处理方法。 6. 了解形态学图像处理技术。 7. 了解图像分割的基本概念和方法。 三、教学内容及安排 第一章:绪论(2学时) 教学目标:了解数字图像处理的基本概念,发展历史,应用领域和研究内容。通过大量的实例讲解数字图像处理的应用领域;了解数字图像处理的基本步骤;了解图像处理系统的组成。 重点难点:数字图像处理基本步骤和图像处理系统的各组成部分构成。 1.1 什么是数字图像处理 1.2 数字图像处理的起源

1.3.1 伽马射线成像 1.3.2 X射线成像 1.3.3 紫外波段成像 1.3.4 可见光及红外波段成像 1.3.5 微波波段成像 1.3.6 无线电波成像 1.3.7 使用其他成像方式的例子 1.4 数字图像处理的基本步骤 1.5 图像处理系统的组成 第二章:数字图像基础(4学时) 教学目标:了解视觉感知要素;了解几种常用的图像获取方法;掌握图像的数字化过程及其图像分辨率之间的关系;掌握像素间的联系的概念;了解数字图像处理中的常用数学工具。 重点难点:要求重点掌握图像数字化过程及图像中像素的联系。 2.1 视觉感知要素(1学时) 2.1.1 人眼的构造 2.1.2 眼镜中图像的形成 2.1.3 亮度适应和辨别 2.2 光和电磁波谱 2.3 图像感知和获取(1学时) 2.3.1 用单个传感器获取图像 2.3.2 用条带传感器获取图像 2.3.3 用传感器阵列获取图像 2.3.4 简单的图像形成模型 2.4 图像取样和量化(1学时) 2.4.1 取样和量化的基本概念 2.4.2 数字图像表示 2.4.3 空间和灰度级分辨率 2.4.4 图像内插 2.5 像素间的一些基本关系(1学时) 2.5.1 相邻像素 2.5.2 临接性、连通性、区域和边界 2.5.3 距离度量 2.6 数字图像处理中所用数学工具的介绍 2.6.1 阵列与矩阵操作

数字图像处理系统毕业设计论文

毕业设计说明书基于ARM的嵌入式数字图像处理系统 设计 学生姓名:张占龙学号: 0905034314 学院:信息与通信工程学院 专业:测控技术与仪器 指导教师:张志杰 2013年 6月

摘要 简述了数字图像处理的应用以及一些基本原理。使用S3C2440处理器芯片,linux内核来构建一个简易的嵌入式图像处理系统。该系统使用u-boot作为启动引导程序来引导linux内核以及加载跟文件系统,其中linux内核与跟文件系统均采用菜单配置方式来进行相应配置。应用界面使用QT制作,系统主要实现了一些简单的图像处理功能,比如灰度话、增强、边缘检测等。整个程序是基于C++编写的,因此有些图像变换的算法可能并不是最优化的,但基本可以满足要求。在此基础上还会对系统进行不断地完善。 关键词:linnux 嵌入式图像处理边缘检测 Abstract This paper expounds the application of digital image processing and some basic principles. The use of S3C2440 processor chip, the Linux kernel to construct a simple embedded image processing system. The system uses u-boot as the bootloader to boot the Linux kernel and loaded with file system, Linux kernel and file system are used to menu configuration to make corresponding configuration. The application interface is made using QT, system is mainly to achieve some simple image processing functions, such as gray, enhancement, edge detection. The whole procedure is prepared based on the C++, so some image transform algorithm may not be optimal, but it can meet the basic requirements. On this basis, but also on the system constantly improve. Keywords:linux embedded system image processing edge detection

图像伪彩色处理

数字图像处理课程实践灰度图像的伪彩色处理 学院:物电学院 班级:11级电信班 指导老师: 小组成员:

目录 1.1伪彩色图像处理原理 (1) 1.2伪彩色增加的目的 (2) 1.3伪彩色图像处理增强的方法 (2) 2.1 源程序执行原理 (4) 2.2 源程序 (5) 2.3实验结果 (6) 3.1学习心得 (7) 参考文献 (8)

1.1伪彩色图像处理原理 数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术,又称为计算机图像处理。扩展了人眼的视觉范围,使之跳出传统的可视界限,在人类生活发展的各个方面至关重要。如何用计算机系统解释图像,形成了图像的理解或称为计算机视觉的理解外部世界。 所谓伪彩色图像处理,就是将图像中的黑白灰度级编程不同的彩色,如过分层越多,人眼所能提取的信息也多,从而达到图像增强的效果。这是一种视觉效果明显,又不太复杂的图像增强技术。伪彩色图像处理技术不仅适用于航空摄影和遥感图片,也可用于x光片及云母的判读等处理中。实现伪彩色处理的主要方法主要有密度分割法、灰度级-伪彩色变换法、频域伪彩色处理等多种方法。我们在这里主要介绍了各种方法的基本原理并重点介绍了灰度级-伪彩色变换法的序设计。 伪彩色图像处理(又称假彩色)有三种:第一种是把真实景物图像的像素逐个地映射为另一种颜色,使目标在原图像中更突出;第二种是把多光谱图像中任意三个光谱图像映射为可见光红、绿、蓝三种可见光谱段的信号,再合成为一幅彩色图像;第三种是把黑白图像,用灰度级映射或频谱映射而成为类似真实彩色的处理,相当于黑白照片的人工着色方法。 伪彩色处理是根据特定的准则对灰度值赋以彩色的处理。由于人眼对彩色的分辨率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。这是一种视觉效果明显而技术又不是很复杂的图像增强技术。灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辨率却很强,这样将黑白图像转换为彩色图像后,人眼可以提取更多的信息量。 伪彩色虽然能将黑白灰度转化为彩色,但这种彩色并不是真正表现图像的原始颜色,而仅仅是一种便于识别的伪彩色。伪彩色处理技术的实现方法有多种,如灰度分层法、灰度级-彩色变换法、频域滤波法等等。

基于ARM嵌入式图像处理系统设计与实现.

第36卷增刊福州大学学报(自然科学版) V01.36Supp.塑!生竺旦2竺!型坚!:些坐竺竺尘!!翌业f塑!皇竺型坠!宝翌竺2墅P:兰堂 文章编号:1000—2243(2008)SO—S013—04 基于ARM嵌入式图像处理系统设计与实现 林文森,李钟慎,洪健 (华侨大学机电及自动化学院,福建泉州362021) 摘要:针对现在的过程检测系统的实时需求,设计出一种成本低,功能适中的图像处理采集系统.该系统以 ARbt7(s3c44Box)为核心并配上外围电路实现图像处理功能,再加上多种通讯接口设计的图像传输通道,然 后加入SD卡接口用于提取图像数据.最后基于uC/OS一Ⅱ嵌入式操作系统设计了一种图像处理方法,在系统 中实现了图像增强、图像分割和目标定位.实验表明,该系统能够很好地解决图像在线处理功能的实时问题, 图像处理的准确率也满足了过程检测系统的要求,而且实现简单,成本比较低,特别适合于对功耗、体积要求 较严格的过程检测系统. 关键词:ARM;图像处理系统;图像增强;目标定位 中图分类号:TP391.41文献标识码:A

DesignandimplementationofembededimagedataprocessingsystembaseonARM UNWen—sen,LIZhong—shen,HONGJian 一(CoHegeofMechanicalEngineeringandAutomation,HuaqiaoUniversity,Quanzhou,Fujian362021,China) Abstract:Aimattheprocessdetectingsysteminnowadaysofreal—timeneed,designing alowcostandmoderatefunctionimageprocessingsystem.rnlesystemUSeARM7(S3C44BOX)as corewithcir-cuitrealizeimageprocessingfunction,multi—communicationinterfaceconstituteimagetransmissionchannels,SDcardinterfaceacquireimagedata.AtlastdesignaimageprocessingmethodsbaseonuC/ OS—IIembededoperatingsystemtorealizeimageenhancement,imagedivisionandtargetorientation. Theexperimentindicatesthatthesystemresolvereal—timeproblemwellinimageon—lineprocessing

简单数字图像处理系统

数字图像课程设计简单数字图像处理系统 function varargout = untitled(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @untitled_OpeningFcn, ... 'gui_OutputFcn', @untitled_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before untitled is made visible. function untitled_OpeningFcn(hObject, eventdata, handles, varargin) %界面初始化函数 setappdata,'I',0); % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to untitled (see VARARGIN) % Choose default command line output for untitled = hObject;

数字图像处理期末复习题2教学总结

第六章图像的锐化处理 一.填空题 1. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。垂直方向的微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 2. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。Roberts交叉微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 3. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。Sobel 微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 4. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。Priwitt微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 5. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。Laplacian微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 6. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。Wallis 微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 7. 在图像的锐化处理中,通过一阶微分算子和二阶微分算子都可以进行细节的增强与检测。水平方向的微分算子属于________________。(填“一阶微分算子”或“二阶微分算子”) 8. 图像微分______________了边缘和其他突变的信息。(填“增强”或“削弱”) 9. 图像微分______________了灰度变化缓慢的信息。(填“增强”或“削弱”) 10. 图像微分算子______________用在边缘检测中。(填“能”或“不能”) 四.简答题 1. 图像中的细节特征大致有哪些?一般细节反映在图像中的什么地方? 2. 一阶微分算子与二阶微分算子在提取图像的细节信息时,有什么异同? 3. 简述水平方向的微分算子的作用模板和处理过程。 4. 简述垂直方向的微分算子的作用模板和处理过程。 5. 已知Laplacian微分算子的作用模板为:,请写出两种变形的Laplacian算子。解答: 1. 图像的细节是指画面中的灰度变化情况,包含了图像的孤立点、细线、画面突变等。孤 立点大都是图像的噪声点,画面突变一般体现在目标物的边缘灰度部分。 2. 一阶微分算子获得的边界是比较粗略的边界,反映的边界信息较少,但是所反映的边界 比较清晰;二阶微分算子获得的边界是比较细致的边界。反映的边界信息包括了许多的细节 信息,但是所反映的边界不是太清晰。 五.应用题 1. 已知Roberts算子的作用模板为:,Sobel算子的作用模板为: 。 设图像为:

数字图像处理期末复习

遥感与数字图像处理基础知识 一、名词解释: 数字影像图像采样灰度量化像素 数字影像:数字影像又称数字图像,即数字化的影像。基本上是一个二维矩阵,每个点称为像元。像元空间坐标和灰度值均已离散化,且灰度值随其点位坐标而异。 图像采样:指将在空间上连续的图像转换成离散的采样点集的操作。 灰度量化:将各个像素所含的明暗信息离散化后,用数字来表示。 像素:像素是A/D转换中的取样点,是计算机图像处理的最小单元 二、填空题: 1、光学图像是一个连续的光密度函数。 2、数字图像是一个_离散的光密度_函数。 3、通过成像方式获取的图像是连续的,无法直接进行计算机处理。此外,有些遥感图像是通过摄影方式获取的,保存在胶片上。只有对这些获取的图像(或模拟图像)进行数字化后,才能产生数字图像。数字化包括两个过程:___采样___和__量化___。 4、一般来说,采样间距越大,图像数据量____小____,质量____低_____;反之亦然。 5、一幅数字图像为8位量化,量化后的像素灰度级取值范围是________的整数。设该数字图像为600行600列,则图像所需要的存储空间为________字节。 6、设有图像文件为200行,200列,8位量化,共7个波段,则该图像文件的大小为________。 三、不定项选择题:(单项或多项选择) 1、数字图像的________。 ①空间坐标是离散的,灰度是连续的②灰度是离散的,空间坐标是连续的 ③两者都是连续的④两者都是离散的 2、采样是对图像________。 ①取地类的样本②空间坐标离散化③灰度离散化 3、量化是对图像________。 ①空间坐标离散化②灰度离散化③以上两者。 4、图像灰度量化用6比特编码时,量化等级为________。 ①32个②64个③128个④256个 5、数字图像的优点包括________。 ①便于计算机处理与分析②不会因为保存、运输而造成图像信息的损失 ③空间坐标和灰度是连续的

基于DSP的数字图像处理系统的设计与实现

基于DSP的数字图像处理系统的设计与实现 文:杨文胜李梅时间:2008-10-7 17:20:49 安徽广电信息网络有限责任公司阜阳分公司 摘要:为满足高数据量图像处理需求,提出并设计了以TMS320DM642为处理器的数字图像处理硬件系统,并在DSP/BIOS上配以实时图像处理软件系统,实现数字图像处理。本文阐述了系统模块的构成、软件系统的设计,在此平台上,采集图像并运用优化算法对图像进行增强、分割、边缘检测,结果表明系统运行正常。 关键词:TMS320DM642 图像处理DSP 一、引言 随着计算机科学技术发展和相关理论的不断完善,数字图像处理技术被广泛应用于可视电话、电视会议、监控系统、商用及工业生产领域中。在技术要求中,一个突出的问题就是数据量庞大、数据处理相关性高、实现实时比较困难。而实时性的主要因素为图像处理的速度,即要求数字图像处理系统要有强大的运算能力。高性能DSP 的发展为实时的图像处理提供了一个解决方法。高速DSP 不仅可以满足在运算性能方面的需要,而且由于DSP 的可编程性,还可以在硬件一级获得系统设计的极大灵活性。 TI公司的TMS320DM642是一款专门面向多媒体应用的专用DSP。该DSP时钟高达600 MHz,8个并行运算单元,处理能力达4800MIPS;采用二级缓存结构,具有64位外接存储器接口,兼容JTAG边界扫描,为了面向多媒体应用,还集成了3个可配置的视频端口。采用DM642为核心设计的数字图像处理系统,能够很好的满足图像处理要求。 二、系统硬件平台框架 系统的整体硬件框图如图1所示,整个系统是以TMS320DM642为核心构成的应用系统。包括DM642处理器芯片、视频编解码器芯片、其他外围电路。DM642通过I2C总线对视频编解码器进行配置,使其能够满足系统的需求;通过VP口接收和传送视频数据以及同步控制信号;通过EMIF总线实现外部存储器的扩展,SDRAM 用于运行时的程序代码和数据的存储,FLASH用于系统引导程序的存储。 时钟模块方面,片内PLL输入时钟和EMIF外部输入时钟是DM642的两个重要时钟,为确保时钟的准确性均采用了有源晶振。其中PLL输入时钟为50MHz,通过对PLL倍频参数选择使DM642工作在600MHz 主频。EMIF外部输入时钟为100MHz,此时钟由ICS512芯片提供。 外部存储器扩展方面,系统采用了2片MT48LC4M32B2-7 SDRAM芯片,此芯片采用了同步接口方式(所有信号都在时钟信号的上升沿触发),与系统时钟同步运行。芯片内存颗粒的构架为1M×32×4banks,每个bank 的行地址数目为12,列地址数目为8。DM642仅支持8位的ROM启动,因此本系统选用了8位数据线宽的AM29LV033C-90EI Flash存储器,映射到CE1低地址空间。由于CE1可寻址地址线位数(20根地址线)比Flash 的地址线位数(22根地址线)要少,因此使用FPGA来创建2根地址线,把Flash分为4页,每页大小为1Mbytes。 协处理器FPGA与DM642数据线、地址线以及时钟信号线相连,为Flash提供2个分页信号。同时协

数字图像处理系统论文

数字图像处理系统论文

毕业设计说明书基于ARM的嵌入式数字图像处理系统 设计 学生姓名:张占龙学号: 0905034314 学院:信息与通信工程学院 专业:测控技术与仪器 指导教师:张志杰 2013年 6月

摘要 简述了数字图像处理的应用以及一些基本原理。使用S3C2440处理器芯片,linux内核来构建一个简易的嵌入式图像处理系统。该系统使用u-boot作为启动引导程序来引导linux内核以及加载跟文件系统,其中linux内核与跟文件系统均采用菜单配置方式来进行相应配置。应用界面使用QT制作,系统主要实现了一些简单的图像处理功能,比如灰度话、增强、边缘检测等。整个程序是基于C++编写的,因此有些图像变换的算法可能并不是最优化的,但基本可以满足要求。在此基础上还会对系统进行不断地完善。 关键词:linnux 嵌入式图像处理边缘检测 Abstract This paper expounds the application of digital image processing and some basic principles. The use of S3C2440 processor chip, the Linux kernel to construct a simple embedded image processing system. The system uses u-boot as the bootloader to boot the Linux kernel and loaded with file system, Linux kernel and file system are used to menu configuration to make corresponding configuration. The application interface is made using QT, system is mainly to achieve some simple image processing functions, such as gray, enhancement, edge detection. The whole procedure is prepared based on the C++, so some image transform algorithm may not be optimal, but it can meet the basic requirements. On this basis, but also on the system constantly improve. Keywords:linux embedded system image processing edge detection

数字图像处理期末考题

数字图像处理 一、填空题 1、数字图像的格式有很多种,除GIF格式外,还有jpg 格式、tif 格式。 2、图像数据中存在的有时间冗余、空间冗余、结构冗余、信息熵冗余、知识 冗余、视觉冗余。 3、在时域上采样相当于在频域上进行___延拓。 4、二维傅里叶变换的性质___分离性、线性、周期性与共轨对称性、__位 移性、尺度变换、旋转性、平均值、卷积。(不考) 5、图像中每个基本单元叫做图像元素;在早期用picture表示图像时就称为 像素。 6、在图象处理中认为线性平滑空间滤波器的模板越大,则对噪声的压制越 好 ;但使图像边缘和细节信息损失越多; 反之, 则对噪声的压制不好 ,但对图像的细节等信息保持好。模板越平,则对噪声的压制越好 ,但对图像细节的保持越差;反之,则对噪声的压制不好,但对图像细节和边缘保持较好。 7、哈达玛变换矩阵包括___+1 和___—1 两种矩阵元素。(不要) 8、对数变换的数学表达式是t = Clog ( 1 + | s | ) 。 9、傅里叶快速算法利用了核函数的___周期性和__对称性。(不要) 10、直方图均衡化的优点是能自动地增强整个图像的对比度。(不要) 二、选择题 ( d )1.一幅灰度级均匀分布的图象,其灰度范围在[0,255],则该图象的信息量为: a. 0 .255 c ( c )2.采用模板[-1 1]主要检测____方向的边缘。 a.水平 b.45 c.垂直 ( c )3. 下列算法中属于图象平滑处理的是: a.梯度锐化 b.直方图均衡 c. 中值滤波增强 ( b )4.图象与灰度直方图间的对应关系是: a.一一对应 b.多对一 c.一对多 d.都不对 ( a )5.对一幅图像采样后,512*512的数字图像与256*256的数字图像相比较具有的细节。 a.较多 b.较少 c.相同 d.都不对 ( b )6.下列算法中属于点处理的是: a.梯度锐化 b.二值化 c.傅立叶变换 d.中值滤波 ( d )7.二值图象中分支点的连接数为: .1 c ( a )8.对一幅100100像元的图象,若每像元用8bit表示其灰度值,经霍夫曼编码后压缩图象的数据量为40000bit,则图象的压缩比为: :1 :1 c.4:1 :2 ( d )9.下列算法中属于局部处理的是: a.灰度线性变换 b.二值化 c.傅立叶变换 d.中值滤波 ( b )10.下列图象边缘检测算子中抗噪性能最好的是: a.梯度算子算子算子d. Laplacian算子

数字图像处理期末复习试题3

1、数字图像:指由被称作像素的小块区域组成的二维矩阵。将物理图像行列划分后,每个小块区域称为像素(pixel)。 数字图像处理:指用数字计算机及其它有关数字技术,对图像施加某种运算和处理,从而达到某种预想目的的技术. 2、8-连通的定义:对于具有值V的像素p和q ,如果q在集合N8(p)中,则称这两个像素是8-连通的。 3、灰度直方图:指反映一幅图像各灰度级像元出现的频率。 4、中值滤波:指将当前像元的窗口(或领域)中所有像元灰度由小到大进行排序,中间值作为当前像元的输出值。 像素的邻域 邻域是指一个像元(x,y)的邻近(周围)形成的像元集合。即{(x=p,y=q)}p、q为任意整数。 像素的四邻域 像素p(x,y)的4-邻域是:(x+1,y),(x-1,y) ,(x,y+1), (x,y-1) 三、简答题( 每小题10分,本题共30 分 ): 1. 举例说明直方图均衡化的基本步骤。 直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。 直方图均衡化变换:设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象Ii(x,y)转换为输出图象Io(x,y),输入图象的直方图为Hi(r),输出图象的直方图为Ho(s),则根据直方图的含义,经过灰度变换后对应的小面积元相等:Ho(s)ds=Hi(r)dr 直方图修正的例子 假设有一幅图像,共有6 4(6 4个象素,8个灰度级,进行直方图均衡化处理。 根据公式可得:s2=0.19+0.25+0.2l=0.65,s3=0.19+0.25+0.2l+0.16=0.8l,s4=0.89,s5=0.95,s6=0.98,s7=1.00 由于这里只取8个等间距的灰度级,变换后的s值也只能选择最靠近的一个灰度级的值。因此,根据上述计算值可近似地选取: S0≈1/7,s 1≈3/7,s2≈5/7,s3≈6/7,s4≈6/7,s5≈1,s6≈l,s7≈1。 可见,新图像将只有5个不同的灰度等级,于是我们可以重新定义其符号: S0’=l/7,s1’=3/7,s2’=5/7,s3’=6/7,s4’=l。 因为由rO=0经变换映射到sO=1/7,所以有n0=790个象素取sO这个灰度值;由rl=3/7映射到sl=3/7,所以有1 02 3个象素取s 1这一灰度值;依次类推,有850个象素取s2=5/7这一灰度值;由于r3和r4均映射到s3=6/7这一灰度值,所以有656+329=98 5个象素都取这一灰度值;同理,有245+1 22+81=448个象素都取s4=1这一灰度值。上述值除以n=4096,便可以得到新的直方图。 2. 简述JPEG的压缩过程,并说明压缩的有关步骤中分别减少了哪种冗余? 答:分块->颜色空间转换->零偏置转换->DCT变换->量化->符号编码。颜色空间转换,减少了心理视觉冗余;零偏置转换,减少了编码冗余;量化减少了心理视觉冗余;符号编码由于是霍夫曼编码加行程编码,因此即减少了编码冗余(霍夫曼编码)又减少了像素冗余(行程编码)。 JPEG2000的过程:图像分片、直流电平(DC)位移,分量变换,离散小波变换、量化,熵编码。3、Canny边缘检测器 答:Canny边缘检测器是使用函数edge的最有效边缘检测器。该方法总结如下:1、图像使用带有指定标准偏差σ的高斯滤波器来平滑,从而可以减少噪声。2、在每一点处计算局部梯度g(x,y)=[G2x+G2y]1/2 和边缘方向α(x,y)=arctan(Gy/Gx)。边缘点定义为梯度方向上其强度局部最大的点。3、第2条中确定的边缘点会导致梯度幅度图像中出现脊。然后,算法追踪所有脊的顶部,并将所有不在脊的顶部的像素设为零,以便在输出中给出一条细线,这就是众所周知的非最大值抑制处理。脊像素使用两个阈值T1和T2做阈值处理,其中T1

数字图像处理之彩色图像的处理

实验六彩色图像的处理 一、实验目的 1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。 2、了解RGB图像与不同颜色空间之间的转换。 3、掌握彩色图像的直方图处理方法。 二、实验内容及步骤 1、RGB图像与索引图像、灰度级图像的转换。 close all RGB=imread('flowers.tif'); [R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像 figure imshow(R_i,map) [R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像 figure imshow(R_g)

思考: 将RGB 图像’flowers.tif ’分别转换为32色、256色、1024色索引图像,是否调色板所表示的颜色值越多图像越好? close all

RGB=imread('flowers.tif'); [R_i1,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像 [R_i2,map]=rgb2ind(RGB,32);%RGB图像转换为32色的索引图像 [R_i3,map]=rgb2ind(RGB,256);%RGB图像转换为256色的索引图像 [R_i4,map]=rgb2ind(RGB,1024);%RGB图像转换为1024色的索引图像 Subplot(221);imshow(R_i1,map);title('8色的索引图像'); Subplot(222);imshow(R_i2,map);title('32色的索引图像'); Subplot(223);imshow(R_i3,map);title('256色的索引图像'); Subplot(224);imshow(R_i4,map);title('1024色的索引图像'); 结论:随着索引值的增加图像的质量也有增加,更加清晰,色彩也更加鲜明。但不是不是颜色值越多越好。当索引值过高时,会出现无法识别而致模糊的情况出现。 2、RGB图像与不同颜色空间的转换。 (1) RGB与HSI颜色空间的转换 HSI应用于彩色图像处理。实验六文件夹中rgb2hsi( )函数将RGB颜色空间转换为HSI 空间并显示各分量,hsi2rgb( )函数是将HSI颜色空间转换为RGB颜色空间。 close all

DSP图像采集处理系统设计实例

DSP图像采集处理系统设计实例 本章将介绍基于TI C6000系列DSP芯片的图像采集处理系统实例。第一节介绍图像处理系统的应用。第二节介绍图像采集系统的基本结构,着重分析如何平衡需求和成本的设计方法。第三节介绍系统的硬件设计,分析DSP和图像采集芯片的接口、电气知识等,给出了设计方案。最后介绍系统的软件设计,主要介绍本系统的软件设计方案,同时也重点介绍TI的图像库。 1 图像采集处理系统的应用 数字图像处理技术是计算机图形深入应用和高层应用的一个极其广泛的领域,它把来自照相机、摄像机或者传真扫描装置、医用CT机、x光机等的图像,经过数学变换后得到数字图像信息,再由计算机进行编码、滤波、增强、复原、压缩、存储等处理,最后产生可视图像,这种技术称为图像处理(Image Processing)。图像处理技术在通信科学、生产与管理、多媒体技术、高清晰度电视、医用图像处理、商品电子化、目标跟踪等领域得到了广泛的应用。在通信事业上,传统的图像信息传输是以模拟图像信号形式出现的。为了提高信息传输的质量和速度,近来数字图像信号处理与传输技术正在迅猛发展,并逐步取代传统的模拟信号处理与传输技术。目前,“信息高速公路”成了发达国家的热门课题,其中数字图像处理技术则成为它的极其重要的部分。而且,数字图像处理技术还与当前乃至21世纪的一些关键电子技术及电子产品密切相关。 目前数字图像处理技术几个引人瞩目的高科技领域包括: 1.高清晰度电视(HDTV) 高清晰度电视是当今国际高科技竞争的制高点之一,占领这个制高点者,必将拥有巨大的经济效益。目前主要有两种发展模式:一是日本、西欧等国家在现有的基础上进行改良;二是美国推出的全数字HDTV,1992年美国推出了4种全数字HDTV,它们的关键技术是在视频图像信号处理上采用最先进的信源图像压缩编码技术。然而,其价格上分昂贵,难以真正商品化。这种状况的丰要原因是压缩编码方法的效率不高。 2.商业电子化 20世纪90年代,由于美国商品零售业的发展,出现了新兴的零售连锁集团,它凭借现代化的计算机管理信息系统所带来的零库存、低成本和低售价,迅速占领了市场,成为美国商品零售业的首批巨人。“这种商业电子化”大市场吸引着越来越多的创业者、高科技公司,以致一些世界性大公司纷纷涉足于这一领域。 商业零售业作为市场流通的枢纽与各行各业密切相关,它使得商业电子化成为一项复杂的系统工程,它不仅仅使商场收款机电子化,而且它还使商场网络化、货币支付电子化甚至订货电子化等。在商业电子化过程中,商品信息的处理、存储与传输是十分重要的环节。

数字图像处理车牌识别课程设计matlab实现附源代码

基于matlab的车牌识别系统 一、目的与要求 目的:利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,了解了基本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,避免理论与实践的脱离,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。 要求: 1.理解各种图像处理方法确切意义。 2.独立进行方案的制定,系统结构设计要合理。 3.在程序开发时,则必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。如果使用matlab来进行开发,要理解每个函数的具体意义和适用范围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。 4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。 二、设计的内容 学习MATLAB程序设计,利用MATLAB函数功能,设计和实现通过设计一个车牌识别系统。车牌识别系统的基本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后将其逐个与创建的字符模板中的字符进行匹配,匹配成功则输出,最终匹配结束则输出则为车牌号码的数字。车牌识别系统的基本工作原理图如图1所下所示:

三、总体方案设计 车辆牌照识别整个系统主要是由车牌定位和字符分割识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。 为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于是采用智能手机在开放的户外环境拍照,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。 牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。 由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要将拍出的车牌进行处理,在这个过程中,我采用画图工具,将汽车图像的车牌部分进行裁剪,并将车牌的蓝色部分过亮的地方颜色加深,还将车牌中的一个白色的原点抹去,另外还将车牌上的铆钉使用车牌的蓝色背景覆盖,这样分割出的字符更加准确。 车牌识别的最终目的就是对车牌上的文字进行识别。主要应用的为模板匹配方法。 因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU要求主频在600HZ及以上,内存在128MB 及以上。系统可以运行于Windows7、Windows2000或者Windows XP操作系统下,程序调试时使用matlabR2011a。 四、各个功能模块的主要实现程序 (一)首先介绍代码中主要的函数功能及用法:

相关主题
文本预览
相关文档 最新文档