图像识别技术和图像处理技术.docx

上传人:b****6 文档编号:16776715 上传时间:2023-07-17 格式:DOCX 页数:46 大小:788.20KB
下载 相关 举报
图像识别技术和图像处理技术.docx_第1页
第1页 / 共46页
图像识别技术和图像处理技术.docx_第2页
第2页 / 共46页
图像识别技术和图像处理技术.docx_第3页
第3页 / 共46页
图像识别技术和图像处理技术.docx_第4页
第4页 / 共46页
图像识别技术和图像处理技术.docx_第5页
第5页 / 共46页
图像识别技术和图像处理技术.docx_第6页
第6页 / 共46页
图像识别技术和图像处理技术.docx_第7页
第7页 / 共46页
图像识别技术和图像处理技术.docx_第8页
第8页 / 共46页
图像识别技术和图像处理技术.docx_第9页
第9页 / 共46页
图像识别技术和图像处理技术.docx_第10页
第10页 / 共46页
图像识别技术和图像处理技术.docx_第11页
第11页 / 共46页
图像识别技术和图像处理技术.docx_第12页
第12页 / 共46页
图像识别技术和图像处理技术.docx_第13页
第13页 / 共46页
图像识别技术和图像处理技术.docx_第14页
第14页 / 共46页
图像识别技术和图像处理技术.docx_第15页
第15页 / 共46页
图像识别技术和图像处理技术.docx_第16页
第16页 / 共46页
图像识别技术和图像处理技术.docx_第17页
第17页 / 共46页
图像识别技术和图像处理技术.docx_第18页
第18页 / 共46页
图像识别技术和图像处理技术.docx_第19页
第19页 / 共46页
图像识别技术和图像处理技术.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图像识别技术和图像处理技术.docx

《图像识别技术和图像处理技术.docx》由会员分享,可在线阅读,更多相关《图像识别技术和图像处理技术.docx(46页珍藏版)》请在冰点文库上搜索。

图像识别技术和图像处理技术.docx

图像识别技术和图像处理技术

摘要

本文对图形图像处理系统的发展现状和所采用的主要技术进行了详细分析,确定了相应的结构和主要功能,以及实际开发中所采取的技术。

系统在WindowsXP平台下实现,本课题是采用VisualC++作为编程工具,采用面向对象的程序设计技术实现一个图形绘制和图像处理的应用软件。

主要工作分为三类,包括基本图形绘制与编辑、简单的图像处理、图像格式的转换。

图形方面主要是设计图形基类,以及继承图形基类的具体图形类。

通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础。

系统的优点有:

充分体现了面向对象的设计思想,充分运用了C++的特性,比如封装、多态、继承。

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

图形绘制部分避免了传统的switchcase的繁琐结构。

容易扩充和移植。

最后,对系统进行测试表明,系统功能达到了预期的要求,界面友好,操作简便,运行也较稳定,是一个完成基本功能的图形图像系统。

总体上,本文介绍了系统开发设计的全过程和设计过程中部分代码,也对系统测试的过程进行简单描述,同时对系统中采用的关键技术也作了一些必要的说明,对图像变换的基本原理,图像处理的基本原理和各种图像格式做了详细的阐述。

关键词:

图形;图像;多态;继承

Abstract

Thisarticlehascarriedonthedetailedanalysisaboutgraphimageprocessingsystemdevelopmentandusingofthekeytechnology,identifythecorrespondingstructureandcentralfunction,aswellasthesystemadoptstechnologyintheactualdevelopment.ThesystemrealizesundertheWindowsXPplatform,thetopicuseVisualC++asaprogrammingtool,useobject-orientedprogrammingtechniquestoachieveagraphicandimageprocessingsoftware.Majorworkisdividedintothreecategories,basicdrawingandeditinggraphics,simpleimageprocessing,andimageformatconversion.Thegraphaspectisdesignsthegraphbaseclass,aswellasinheritsthegraphbaseclass’sspecificgraphclass.Throughindependentfunction'sencapsulation,forthefuture’sneedsofthegraphicimageslaysthefoundation.Thesystemmerithas:

theobject-orienteddesign’sthoughtapplicationofthec++properties,forexampleencapsulation,polymorphism,andinheritance.Program’sstructureisclear,goodreadability,codeshasthefullannotationintheprogram.Thegraphplan’sparthasavoidedplicatedstructureofthetraditionalswitchcase.Easyexpansionandtransplantation.

Finally,system’stestingshows,system’sfunctionsachievetheexpecteddemand,friendlyinterface,andtheoperationissimple,alsoamuchstableoperation,ithasbasicfunctionsofthegraphicimagesystem.

Asawhole,thispaperdescribesthesystemdesignprocessandpartoftheprocessofdesigningcode,alsocarriesonthesimpledescriptiontothesystemtestprocess,meanwhileitmadesomenecessaryexplanationsaboutkeytechnologyinthesystem,itmadethedetaileddescriptiontoimagetransformofthebasicprinciple,theimageprocessingbasicprincipleandvariousimageformats.

Keyword:

graph;image;polymorphism;inheritance

第1章引言

1.1课题的研究目的和意义

本课题的目的是采用VisualC++作为编程工具,实现基本图形元素如直线、圆、椭圆等的绘制,对图形元素的基本操作如填充、擦除等,也包括对常用图像格式的处理,如图像的显示、图像格式的转换等[1]。

应该说,目前已有种类繁多的图形图像处理专用软件工具,如AutoCAD、和PhotoShop等,利用这些图形图像处理软件可以实现同样的功能。

即便如此,研究这些图形图像处理技术仍具有一定使用价值。

首先,利用一个设计良好的简单的小图形处理程序可以用于教学演示的目的,展示基本的图形图像处理技术和面向对象技术在这一领域的应用效果。

其次,在很多应用中需要提供自己的图形图像处理功能,例如,在一个正在连接网络的任务中可能就希望显示一幅示意性的动画,此时,不能依赖一个图形软件来实现。

因此,通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础[2]。

此外,借助VisualC++语言这种典型的面向对象编程环境,能够充分挖掘硬件的潜能,得到性能优良的程序代码。

1.2国内外发展现状

图形与图像处理是计算机最早应用的领域之一,从简单的图形显示到复杂的图像分析、模式识别,使得图形与图像处理技术不断走向成熟,也涌现出了大量的软件。

例如,ACDSee、PhotoShop、CorelDraw等,这些软件提供了一般显示、特殊显示、特技处理等大量复杂的功能。

图形处理技术得益于图形学的发展,而从目的上可以将图像处理技术分为两类,分别是图像识别技术和图像处理技术。

针对图像处理技术,可以是旋转、亮度、对比度、饱和度、RGB调节、调节图像尺寸等属性方面的处理技术和添加文字、图像增强、弱化、水印、特效、镂空等处理方法。

甚至为了达到更精微的处理效果,这些软件还使用了图层。

随着网络和多媒体技术的发展和应用,体现在应用软件中的是一些更具有“现代感”的应用,例如,支持各种常用图形、RAW原始图片、Flash动画的快速浏览、编辑、保存、导入、导出,甚至还可以提供一些趣味涂鸦、字符素描之类的应用,以体现人的个性[3]。

事实上,应用软件中常常需要采用其中的某些技术来处理相关的问题。

例如,一个支持简单形状辅助设计的软件并不需要支持特效方面的方法。

在软件设计的支撑环境和技术上,C++是一个很好的选择,这主要是考虑到如下因素,主要包括代码效率高,处理底层问题能力强,支持面向对象的程序设计方法。

利用C++技术可以实现对程序代码和数据的良好封装,使之能够具有良好的重用性。

1.3研究方法与手段

1.3.1运行环境

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

(1)硬件环境

①处理器:

InterPentium166MX或更高

②内存:

32MB或更高

③硬盘空间:

1GB或更高

④显卡:

SVGA显示适配器

(2)软件环境

操作系统:

Window98/ME/2000/XP

1.3.2开发环境

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

(1)操作系统:

WindowsXP

(2)开发语言:

C++

(3)开发环境:

VisualC++6.0

第2章图形图像处理系统相关技术综述

2.1图形设计基础

2.1.1VisualC++技术概要

面向对象程序设计(Object-OrientedProgramming,简称OOP)方法已出现近30年,在20世纪90年代己成为程序设计的主流方向。

面向对象程序设计语言是现代程序开发的主要工具。

程序包含两类基本的元素,即数据和操作数据的指令集(称为代码)。

传统的程序设计语言以设计代码为核心,程序设计实际上就是指定程序指令的先后次序,数据表示必须适应代码的设计。

模块化程序设计方法将完成某一功能的指令集组成一个相对独立的程序模块(即函数或过程),使得程序的结构清晰,便于有效的维护,对程序设计技术有很大的促进。

但由于结构化程序设计方法并不能保证各程序模块之间真正的相互独立,程序设计者在设计一个模块时很难完全排除其他模块的影响。

随着程序规模的增大,各模块之间的相互影响导致一些难于测试,难以定位发现的错误,增加了程序开发和维护的困难。

面向对象程序设计方法主要以数据为中心,代码是围绕着需要处理的数据而设计的[4]。

2.1.2图形设备接口GDI

图形设备接口(GDI)是一个抽象的接口。

通过该接口可以实现对图形的颜色、线条的粗细等属性的控制。

程序可以通过调用这些GDI函数和硬件打交道的,从而实现了设备无关性[5]。

2.1.3设备环境DC

设备环境DC(DeviceContext又称设备上下文,也称设备描述表)是一个关于如何绘制图形的方法的集合,它可以绘制各种图形,确定在应用窗口中绘制图形的方式,即确定绘图模式和映射模式。

在绘图之前,必须获取绘图窗口区域的一个设备环境DC。

接着进行GDI函数的调用,执行适合于设备环境DC的命令。

获取DC时,Windows初始化了一套完整的属性和对象集合,可以使用它们渲染显示。

为了创建自己应用程序的特定显示,可以更改这些属性和对象。

Windows的设备环境是GDI的关键元素,它代表了不同的物理设备[5]。

分为4种类型,包括显示器型,打印机型,内存型和信息型。

每种类型的设备环境都有各自的特定用途,详见表2-1。

表2-1设备环境的类型和用途

设备环境

用途

显示器型

打印机型

内存型

信息型

支持视频显示器上的绘图操作

支持打印机和绘图仪上的绘图操作

支持位图上的绘图操作

支持设备数据的访问

2.1.4CDC类的派生类的功能及其之间的区别

CDC各派生类各有特点,并可以完成不同的功能,表2-2介绍了各派生类的主要功能。

表2-2CDC类的派生类简介

派生类名称

说明

CClientDC

这是一个设备描述表,提供对窗口客户区域的图形访问。

在窗口中画图时可使用此类DC,但对WM_PAINTWindows消息除外。

CMetaFileDC

这个设备描述表代表Windows元文件,它包含一系列命令已重新产生图像。

想要创建独立于设备的文件时可使用此类DC,用户可以回放这种文件来创建图像。

续表2-2

派生类名称

说明

CPaintDC

这是创建WM_PAINTWindows消息的设备描述表。

应用程序可以使用此DC更新Windows显示,通常在MFC应用程序的OnPaint()函数中使用。

CWindowDC

可以提供在整个窗口(包括客户区和非客户区)中画图的设备描述表。

(1)CWindowDC类与CPaintDC和CClientDC类的区别

CWindowDC类与CPanitDC类和CClientDC的区别的一个方面是:

用CPaintDC类CClientDC类的对象绘制图形时,绘制区只能是客户区,而不能在非客户区,而CWindowDC可以在非客户区进行图形绘制。

CWindowDC一般在框架窗口类中(CMainFrame)引用,在视图窗口中引用CWindowDC类时,由于视图类只能管理客户区,所以并不能在非客户区进行绘制。

他们之间区别的另一个方面是:

在CWindowDC绘图类下,坐标系是建立在整个屏幕上的,在像素坐标方式下,坐标原点在屏幕的左上角,而在CPaintDC和CClientDC绘图类下,坐标系是建立在客户区上的,在像素坐标方式下,坐标原点在客户区的左上角[6]。

(2)CPainDC类与CClientDC类的区别

CPaintDC类与CClientDC类都是在窗口的客户区内绘制图形,但两者在绘制机制上有着本质的区别。

CPaintDC类应用在OnPaint函数中,以响应Windows的WM_PAINT消息,而CClientDC应用在非响应消息WM_PAINT的情况下。

CPaintDC类响应WM_PANINT消息,自动完成绘制,这对维护图形的完整性有着重要的作用。

2.1.5与绘图相关的GDI对象类

本节主要介绍与绘制各种图形元素相关的GDI对象类。

所谓基本绘图对象类主要包括CBitmap类、CBrush类、CFont类、CPen类、CRgn类。

它们都是CGdiObject类的派生类[6]。

简要介绍如下。

(1)CBitmap——位图是一种位矩阵,每一个显示像素都对应于其中的一个或多个位。

利用位图来表示图像,创建画刷。

(2)CBrush——画刷定义了一种位图形式的像素,利用它可对区域内部填充颜色。

(3)CFont——字体是一种具有某种风格和尺寸的所有字符的完整集合。

(4)CPen——画笔是一种用来画线及绘制有形边框的工具,可以指定它的颜色及厚度,并且可以指定它画实线、点线或虚线。

(5)CRgn——区域是由多边形、椭圆或二者组合形成的一种X围,可以利用它来进行填充、裁剪。

(6)CPalette——调色板是一种颜色映射接口,允许应用程序在不干扰其他应用程序的前提下,充分利用输出设备的颜色描绘能力。

2.1.6坐标变换和映射模式

在本节讨论两种坐标系——逻辑坐标系和设备坐标系及其相互之间的转换。

坐标映射方式是指两种坐标系在相互转换时,逻辑单位和设备单位之间存在的某种比例关系。

(1)逻辑坐标和设备坐标的转换

设备坐标是针对屏幕或其他显示设备而言的。

其原点在屏幕的左上角。

X轴正方向为向右,Y轴的正方向为向下。

原点位于窗口的左上角点处。

单位为像素。

逻辑坐标则是在内存中虚拟的一个坐标系。

其原点在屏幕的左上角。

X轴的正方向为向右,Y轴的正方向为向上。

其单位随着映射模式的不同而改变。

(2)窗口和视口

窗口是虚拟存在的一个屏幕,在屏幕上看到的图形是视口。

Windows在绘制图形时,并不是把图形直接绘制到屏幕上,而是绘制到特定的映射模式下的逻辑坐标系虚拟的窗口中,然后将这个图形映射到一个视图中,即视口中。

而当前的设备(如屏幕,打印机)显示出来的就是该视图的一部分[7]。

(3)设置绘图模式

绘图模式指定了画笔颜色和被填充物体内部颜色是如何与显示平面的颜色相混合的。

绘图模式是描述两个变量的所有可能的布尔组合,指采用什么方式进行绘制工作,而采用的方式主要体现在像素颜色的设定。

2.2图像设计基础

2.2.1数字图像的基本概念

人眼看到的任何自然界的图像都是连续的模拟图像,其形状和形态表现由图像各位置的颜色所决定。

色度学理论认为,任何颜色都可由红(Red)、绿(Green)、蓝(Blue)3种基本颜色按不同的比例混合得到。

红、绿、蓝被称为三原色,简称RGB三原色。

因此,自然界的图像可用基于位置坐标的三维函数来表示,即

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

其中f表示空间坐标为(x,y,z)位置点的颜色,fred、fgreen、fblue分别表示该位置点的红、绿、蓝3种原色的颜色分量值。

它们都是空间的连续函数,即连续空间的每—点都由一个精确的值与之相对应。

为了研究的方便,主要考虑平面图像。

平面上每一点仅包括两个坐标值。

因此,平面图像函数是连续的二维的数,即

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

图像可以分为黑白图像和彩色图像。

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

fred=fgreen=fblue(2-3)

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

由于计算机仅能处理离散的数据,所以如要用计算机来处理图像,连续的图像函数必须转化为离散的数据集,这一过程叫做图像采集[7]。

图像采集由图像采集系统完成,如图2-1所示。

图像采集系统包括3个基本单元,即成像系统、采样系统和量化器。

图2-1图像采集系统

2.2.2调色板

现实世界的颜色种类是无限的,但计算机显示系统所能表现的颜色数量是有限的。

因此,为了使计算机能最好地重现实际图景,就必须采用一定的技术来管理和取舍颜色。

按表现能力的不同,现代计算机的显示系统可以分为以下3种。

(1)VGA:

能用640×480的分辨率同时显示16种颜色。

(2)SuperVGA:

能用640×480的分辨率同时显示256种颜色

(3)真彩色:

能同时显示16777216种颜色。

所谓真彩色(TrueColor),是指显示出来的图像的颜色与真实世界中的颜色非常自然逼真、人眼难以区分它们的差别。

通常使用RGB表示法来表现真彩色图像,即用3字节(24位)来表示—个真彩色像素的颜色值,红、绿、蓝三原色的浓度分别用一字节(8位)来表示。

Windows采用该方法来表现颜色,其SDK提供一个名为RGB的宏来将不同的R、G、B颜色值转化为24位的颜色值,其原型如下所示。

COLORREFRGB(BYTEbRed,BYTEbGReen,BYTEbBlue)(2-7)

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

其十六进制数据表示形式如下所示。

0x00bbggrr(2-8)

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

2.2.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章图形图像处理系统的总体设计

3.1需求分析

市场上的图像处理软件大都功能强大,需要好一阵子适应,普通的用户根本用不到那么多的功能。

所以,可以开发一种简单小巧,可进行基本图像处理,图形绘制的软件非常必要。

利用一个设计良好的简单的小图形图像处理程序可以用于教学演示的目的,展示基本的图形图像处理技术和面向对象技术在这一领域的应用效果。

通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础。

此外,借助VisualC++语言这种典型的面向对象编程环境,能够充分挖掘硬件的潜能,得到性能优良的程序代码。

3.2图形图像处理系统目标设计

系统的设计目标是采用面向对象的程序设计技术实现一个图形绘制和图像处理的应用软件,满足普通用户对于图形图像应用程序的简单需求。

主要工作分为三类,包括基本图形绘制与编辑、图像格式识别与转换、简单的图像处理。

3.3图形图像处理系统功能描述

系统的主要功能包括绘制各种简单图形、改变所绘图形的颜色、线条类型、打开和存储各种常见的图像文件、对图像进行简单的处理。

(1)图元绘制

①直线图元,或者称为线段图元,允许用户使用鼠标选择直线顶点绘制。

②圆图元,允许用户利用圆心和半径来进行绘制。

③矩形图元。

④圆角矩形图元。

(2)改变绘制条件

在绘制图元时要能够改变绘制条件,主要包括如下内容。

①改变线条颜色,使用户可以绘制出不同颜色的图元。

②改变线条类型,使用户可以绘制出不同线型的图元。

③改变填充方式,使用户可以选择不同的填充方式。

(3)图元修改

包括如下操作。

①删除图元。

②平移图元。

③镜像图元。

④旋转图元。

(4)图元属性修改

①改变被选图元颜色。

 

图3-1图形图像处理系统功能描述图

 

图3-2图形图像处理系统功能描述图图形部分

图3-3图形图像处理系统功能描述图图像部分

②改变被选图元线型。

③改变被选图元线宽。

(5)图像格式处理

能够打开、存储、关闭几种常见图像文件,隐含了格式的转换。

(6)图像变换

包括旋转、镜像。

(7)图像处理

包括图像平滑、锐化。

根据功能模块分析,完整的系统功能描述参见图3-1。

3.4界面设计

3.4.1主界面设计

图形图像系统启动界面,如图3-4所示。

图3-4图形图像系统启动界面

考虑到图像处理的方便,决定采用多文档(MDl)界面。

基本的绘图工具都在两个工具栏中体现出来,这是为了方便用户绘图的需要,属性单独使用一个对话框使设置图元的属性更加方便,而且使界面看起来更加的美观。

图形图像系统界面如图3-5所示。

图3-5图形图像系统界面

3.4.2菜单设计

主菜单如图3-6所示,包括文件、编辑、查看、窗口、图像变换、图像处理、帮助菜单项。

图3-6图形图像系统菜单

图像变换菜单包括图像的旋转和镜像,图像处理菜单包括平滑和锐化。

图3-7图像变换和图像处理菜单

3.4.3工具栏设计

工具栏方便绘图,所以本系统把常用的绘图操作命令都用工具栏来实现,如图3-8、图3-9是本应用程序的工具栏。

主工具栏中包括打开、新建、保存、回退,设定画布大小等命令。

图3-8主工具栏

绘图工具栏中包括绘制直线,矩形,圆角矩形,圆,椭圆等图形。

图3-9绘图工具栏

3.4.4属性框设计

属性框可以设置绘图图形的属性,包括线型,线宽,颜色的属性属性框的界面如下图如3-10所示。

图3-10属性框界面

第4章图形图像处理系统图像部分设

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2