第四章 文件处理【信息学奥赛】

4.1  简介 

        存储在变量和数组中的数据是临时的,这些数据在程序运行结束后都会消失。文件用来永久地保存大量的数据。计算机把文件存储在二级存储设备中(特别是磁盘存储设备)。本章要讨论怎样用C++程序建立、更新和处理数据文件(包括顺序存储文件和随机访问文件)。我们要比较格式化与“原始数据”文件处理。后面将介绍从string而不是从文件输入和输出数据。

4.2  文件和流

        C++语言把每一个文件都看成一个有序的字节流,每一个文件或者以文件结束符(end-of-file marker)结束,或者在特定的字节号处结束(结束文件的特定的字节号记录在由系统维护和管理的数据结构中)。当打开一个文件时,该文件就和某个流关联起来。第11章曾介绍过cin、cout、cerr和clog这4个对象会自动生成。与这些对象相关联的流提供程序与特定文件或设备之间的通信通道。例如.cin对象(标准输入流对象)使程序能从键盘输入数据,cout对象(标准输出流对象)使程序能向屏幕输出数据,cerr和clog对象(标准错误流对象)使程序能向屏幕输出错误消息。

        要在C++中进行文件处理,就要包括头文件<iostream.h>和<fstream.h>。<fstream.h>头文件包括流类ifstream(从文件输入)、ofstream(向文件输出)和fstream(从文件输入,输出)的定义。生成这些流类的对象即可打开文件。这些流类分别从istream、ostream和iostream类派生(即继承它们的功能)。这样,第2章“C++输入,输出流”中介绍的成员函数、运算符和流操纵算子也可用于文件流。

4.3  建立并写入文件

        因为C++把文件看着是无结构的字节流,所以记录等等的说法在C++文件中是不存在的。为此,程序员必须提供满足特定应用程序要求的文件结构。下例说明了程序员是怎样给文件强加一个记录结构。先列出程序,然后再分析细节。

        图4.4中的程序建立了一个简单的访问文件,该文件可用在应收账目管理系统中跟踪公司借贷客户的欠款数目。程序能够获取每一个客户的账号、客户名和对客户的结算额。一个客户的数据就构成了该客户的记录。账号在应用程序中用作记录关键字,文件按账号顺序建立和维护。范例程序假定用户是按账号顺序键人记录的(为了让用户按任意顺序键入记录,完善的应收账目管理系统应该具备排序能力)。然后把键入的记录保存并写入文件。

// 建立文件
#include <iostream.h>

#include <fstream.h>

#include <stdlib.h>

using namespace std;

int main() {
	// ofstream构造函数打开文件
	ofstream fout( "clients.dat");

	if ( !fout ) { // 是否能打开文件

		cerr << "无法打开文件" << endl;

		exit( 1 ); // prototype in stdlib.h

	}
	cout << "输入帐户、名称和余额.\n"
	     << "输入文件后缀以结束输入。\n? ";

	int account;

	char name[ 30 ];

	float balance;

	while (cin >> account >> name >> balance ) {

		fout << account << ' ' << name << ' ' << balance << '\n';

		cout << "? ";

	}

	return 0;	// ofstream析构函数关闭文件
}

输出结果:

输入帐户、名称和余额.

输入文件后缀以结束输入。

? 100 张三 24.98

? 200 李四 345.67

? 300 王五 0

? 400 赵六 -42.16

? 500 钱七 224.62

? ^z

图 4.4 建立文件

        现在我们来研究这个程序。前面曾介绍过,文件通过建立ifstream、ofstream或fstream流类的对象而打开。图4.4中,要打开文件以便输出,因此生成ofstream对象。向对象构造函数传入两个参数——文件名和文件打开方式。对于ostream对象,文件打开方式可以是ios::out(将数据输出到文件)或ios::app(将数据添加到文件末尾,而不修改文件中现有的数据)。现有文件用ios::out打开时会截尾,即文件中的所有数据均删除。如果指定文件还不存在,则用该文件名生成这个文件。下列声明(第10行):

        ofstream fout (“clients.dat”);

生成ofstream对象fout,与打开输出的文件clients.dat相关联。参数"clients.dat"和ios::out传入ofstream构造函数,该函数打开文件,从而建立与文件的通信线路。默认情况下,打开ofstream对象以便输出,因此下列语句:

        ofstream fout (”clients.dat”);

也可以打开clients.dat进行输出。图4.5列出了文件打开方式。

也可以生成ofstream对象而不打开特定文件,可以在后面再将文件与对象相连接。例如,下列声明:

        ofstream fout;

生成以ofstram对象fout。ofstream成员函数open打开文件并将其与现有ofstream对象相连接,如下所示:

        fout open(“clients.dat”);

------------------------------------------------------------------------------------------

  文件打开方式            说明

------------------------------------------------------------------------------------------

  ios::app              将所有输出写入文件末尾

  ios::ate               打开文件以便输出,井移到文件末尾(通常用于添加数据)数据可以写入

                            文件中的任何地方

  ios::in                 打开文件以便输入

  ios::out               打开文件以便输出

  ios::trunc            删除文件现有内容(是ios::out的默认操作)

  ios::nocreate      如果文件不存在,则文件打开失败

  ios::noreplace    如果文件存在,则文件打开失败

------------------------------------------------------------------------------------------

图4. 5 文件打开方式

生成ofstream对象并准备打开时,程序测试打开操作是否成功。下列if结构中的操作(第12行到第15行):

    if ( ! fout ) {

        cerr << "无法打开文件" << endl;

        exit(1);

    }

        用重载的ios运算符成员函数operator!确定打开操作是否成功。如果open操作的流将failbit或badbit设置,则这个条件返回非0值(true)。可能的错误是试图打开读取不存在的文件、试图打开读取没有权限的文件或试图打开文件以便写人而磁盘空间不足。

        如果条件表示打开操作不成功.则输出错误消息“File could not be opened",并调用函数exit结束程序,exit的参数返回到调用该程序的环境中,参数0表示程序正常终止.任何其他值表示程序因某个错误而终止。exit返回的值让调用环境(通常是操作系统)对错误做出相应的响应。

        另一个重载的ios运算符成员函数operator void*将流变成指针,使其测试为0(空指针)或非0(任何其他指针值)。如果failbit或badbit(见第11章)对流进行设置,则返回0(false)。下列while首部的条件自动调用operator void*成员函数:

        while (cin >> account >> name >> balance )

        只要cin的failbit和badbit都没有设置,则条件保持true。输入文件结束符设置cin的failbit。operator void*函数可以测试输入对象的文件结束符,而不必对输入对象显式调用eof成员函数。

        如果文件打开成功,则程序开始处理数据。下列语句(第17行和第18行)提示用户对每个记录输入不同域,或在数据输入完成时输入文件结束符:

        cout << "输入帐户、名称和余额.\n"

                << "输入文件后缀以结束输入。\n? ";

图4. 6列出了不同计算机系统中文件结束符的键盘组合。

---------------------------------------------------

    计算机系统                     组合键

---------------------------------------------------

    UNIX系统                       <ctrl>d

    IBM PC及其兼容机        <ctrl>z

    Macintosh                      <ctrl>d

    VAX(VMS)                     <ctrl>z

---------------------------------------------------

图14.6各种流行的计算机系统中的文件结束组合键

下列语句(第24行):

    while (cin >> account >> name >> balance )

输入每组数据并确定是否输人了文件结束符。输入文件结束符或不合法数据时,cin的流读取运算符>>返回0(通常这个流读取运算符>>返回cin),while结构终止。用户输入文件结束符告诉程序没有更多要处理的数据。当用户输入文件结束符组合键时,设置文件结束符。只要没有输入文件结束符,while结构就一直循环。

  第25行和第26行:

    fout<< account << ' ' << name<< ' ' << balance << '\n';

用流插人运算符<<和程序开头与文件相关联的fout对象将一组数据写入文件”clients.dat"。

可以用读取文件的程序取得这些数据(见4.5节)。注意图4.4中生成的文件是文本文件,可以用任何文本编辑器读取。

输人文件结束符后,main终止,使得fout对象删除,从而调用其析构函数,关闭文件

clients.dat。程序员可以用成员函数close显式关闭ofstream对象,如下所示:

    fout.close();

4.4  读取文件中的数据

为了在需要的时候能够检索要处理的数据,数据要存储在文件中。上一节演示丁怎样建立一个顺序访问的文件。这一节要讨论按顺序读取文件中的数据。

图4.7中的程序读取文件"clients.dat"(图4.4中的程序建立)中的记录,并打印出了记录的内容。通过建立ifstream类对象打开文件以便输入。向对象传入的两个参数是文件名和文件打开方式。下列声明:

        ifstream  fin ( "clients.dat");

生成ifstream对象fin,并将其与打开以便输入的文件clients.dat相关联。括号中的参数传入ifstream构造函数,打开文件并建立与文件的通信线路。

打开ifstream类对象默认为进行输入,因此下列语句:

        ifstream fin ( "Clients.dat" );

可以打开clients.dat以便输入。和ofstream对象一样,ifstream对象也可以生成而不打开特定文件,然后再将对象与文件相连接。

程序用fin条件确定文件是否打开成功,然后再从文件中读取数据。下列语句:

        while (fin >> account >> name >> balance )

从文件中读取一组值(即记录)。第一次执行完该条语句后,account的值为100,name的值为"John",balance的值为24.98。每次执行程序中的该条语句时,函数都读取文件中的另一条记录,并把新的值赋给account、name和balance。记录用函数outputLine显示,该函数用参数化流操纵算子将数据格式化之后再显示。到达文件末尾时,while结构中的输入序列返回0(通常返回fin流),ifstream析构函数将文件关闭,程序终止。

// Reading and printing a sequential file
#include <iostreamoh>

#include <fstream.h>

#include <iomanip.h>

#include <stdlib.h>

void outputLine( int, const char *, double );

int main() {
	// ifstream构造函数打开文件
	ifstream fin ( "clients.dat" );

	if { ! fin ) {

		cerr << "无法打开文件\n";

		exit( 1 );

	}

	int account;

	char name[ 30 ] ;

	double balance;

	cout << setiosflags( ios::left ) << setw( 10 ) << "账户"

	     << setw( 13 ) << "名称" << "余额\n";

	while ( fin >> account >> name >> balance )

		outputLine( account, name, balance );

	return 0;// ifstream destructor closes the file

	}

	void outputLine( int acct, const char *name, double bal )

	{

		cout << setiosflags( ios::left ) << setw( 10 ) << acct

		     << setw( 13 ) << name << setw( 7 ) << setprecision( 2 )

		     << resetiosflags( ios::left )

		     << setiosflags( ios::fixed | ios::showpoint )

		     << bal << '\n';

	}
	return 0;
}

输出结果:

账户       名称         余额

i00        Jones        24.98

200        Doe         345.67

300        White         0.00

400        Stone       -42.16

500        Rich        224.62

图4.7 读取并打印一个顺序文件

        为了按顺序检索文件中的数据,程序通常要从文件的起始位置开始读取数据,然后连续地读取所有的数据,直到找到所需要的数据为止。程序执行中可能需要按顺序从文件开始位置处理文件中的数据好几次。istreatrl类和ostream类都提供成员函数,使程序把“文件位置指针”(file position pointer,指示读写操作所在的下一个字节号)重新定位。这些成员函数是istream类的seekg(“seekget”)和ostream类的seekp(“seek put”)。每个istream对象有个get指针,表示文件中下一个输入

相距的字节数,每个ostream对象有一个put指针,表示文件中下一个输出相距的字节数。下列语句:

    fin.seekg( 0 );

将文件位置指针移到文件开头(位置0),连接fin。seekg的参数通常为long类型的整数。

第二个参数可以指定寻找方向,ios::beg(默认)相对于流的开头定位,ios::cur相对于流当前位置定位,ios::end相对于流结尾定位。文件位置指针是个整数值,指定文件中离文件开头的相对位置(也称为离文件开头的偏移量)。下面是一些get文件位置指针的例子:

    // 定位到fileObject的第n个字节

    // 假设 ios::beg

    fileObject.seekg( n );

    // 在fileObject中向前放置n个字节

    fileObject.seekg( n, ios::cur );

    // 从fileObject结尾向后放置y字节

    fileObject.seekg( y, ios::end );

    // fileObject末尾的位置

    fileObject.seekg( o, ios::end );

        ostream成员函数seekp也可以进行类似的操作。成员函数tellg和tellp分别返回get和put指针的当前位置。下列语句将get文件位置指针值赋给long类型的变量location。

    location = filObject.tellg();

4.5  更新访问文件

4. 4 节介绍了格式化和写入访问文件的数据修改时会有破坏文件中其他数据的危险。例如,如果要把名字"White"改为"Worthinglon",则不是简单地重定义旧的名字。White的记录是以如下形式写人文件中的:

    300 White 0.00

如果用新的名字从文件中相同的起始位置重写该记录,记录的格式就成为:

    300 Worthington 0.00

        因为新的记录长度大于原始记录的长度,所以从“Worthington"的第二个“0”之后的字符将重定义文件中的下一条顺序记录。出现该问题的原因在于:在使用流插入运算符<<和流读取运算符>>的格式化输人,输出模型中,域的大小是不定的,因而记录的大小也是不定的。例如,7、14、-117、2047和27383都是int类型的值,虽然它们的内部存储占用相同的字节数,但是将它们以格式化文本打印到屏幕上或存储在磁盘上时要占用不同大小的域。因此,格式化输入,输出模型通常不用来更新已有的记录。

        也可以修改上述名字,但比较危险。比如,在300 Whlte 0.00之前的记录要复制到一个新的文件中,然后写入新的记录并把300 White 0.00之后的记录复制到新文件中。这种方法要求在更新一条记录时处理文件中的每一条记录。如果文件中一次要更新许多记录,则可以用这种方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 目的 为了加强公司电子文件的管理,确保公司各种电子文件科学有序的运行、传递,规范 电子文件的归档和保管程序,特制订本规定 2. 适用范围 适用于本公司的电子文件运行、管理和归档工作。 电子文件:指在数字设备及环境中生成,以数字形式储存于磁带、磁盘、光盘等载体 ,依赖计算机等数字设备阅读、处理,并可在通信网络上传递的文件。 归档电子文件:指具有参考和利用价值,并作为档案保存的电子文件。 3. 职责 3.1 综合管理部负责电子文件管理标准的制定,随时根据国家和行业标准更新公司电子文件 管理规范和相关设备。 3.2负责各类电子文件的验收、整理、建库、光盘制作、保管、统计、提供利用等管理 工作。 3.3 负责购买、使用、维护电子文件保存利用的器具和设施。 4工作程序 4.1电子文件的归档类型 4.1.1 实体档案相对应的电子文件的归档范围和保管期限按照《文件控制程序》中基本归 档范围和保管期限执行。 4.1.2各部门对电子文件采用可卸载归档方式,同纸质档案一并移交。 . 4.1.3电子文件基本数据类型定义及其代码可分别为: . 文本文件(Text,代码T) . 指使用文字处理软件生成的,由字、词、数字符号表达的文件。文本文件中除了存储 有效 字符信息(包括能用ASCLL码字符表示的回车、换行等信息外,不包含声音、动画、图 像、视频等其他任何信息。 . 图形文件(Graphic,代码为G) . 指根据一定算法绘制的图表、曲线图,包括几何图形和物理量如应力、强度等用图标 表示的图形等。计算机辅助设计(CAD)或绘图中产生的文件,如设计模型、图纸、图 画等即为图形文件。 . 图像文件(Image,代码I) . 指使用数字设备采集或制作的静态画面,如用扫描仪扫描的各种原件画面,用数码相 机拍摄的照片等。 . 视频文件(Video,代码V) . 指使用视频捕获设备录入的数字影像或使用动画软件生成的二维、三维动画等各种动 态画面,如数字影视、动画片等。 . 音频文件(Audio,代码为A) . 指用音频设备录入或编曲软件生成的文件。用音频设备录入并转换为数字形式的文件 ,采样频率是单位时间内的采样次数,主要有11KHZ(电话质量)、22KHZ(FM调频收音 机质量)和44KHZ(CD质量)三种。 . 数据库文件(Database,代码为D) . 指在事务处理系统中单独承担文件职责,或者作为文件的重要组成部分出现的数据对 象。 . 计算机程序文件(Program,代码为P) . 指为处理各种事务用计算机语言编写的程序,是一种计算机软件,它的形成过程一般 是由程序员编写"源程序"能表明版权的归属,对于计算机软件的开发者来说具有重要 的保存价值。 . 多媒体文件(Multimedia,代码为M) . 包含上述两种以上信息形式的文件为"多媒体文件",这种文件使用多媒体技术制作, 具有复杂的结构,必须使用多媒体计算机复现。 . 文本文件推荐采用XML格式,现阶段可以收集PDF、RTF、TXT格式文档;图像文件推荐采 用TIFF或者JPEG格式;视频或多媒体文件推荐采用MPEG或AVI格式音频文件推荐采用M PS或WAV格式。数据库文件应能够以DBF文件格式或通过XML文档进行数据交换。通过格 式的电子文档,各部门应收集一套形成或支持该格式电子文件的通用软件及其相关参 数手册、说明资料等。特殊的无法转换为通用格式的电子文件,应同时收集其特殊的 软硬件环境、压缩算法和其他相关数据。 4.1.4规档的电子文件中应包括《电子文件元数据表》,电子文件读目录,相关软件及其他 说明等,并附上《归档电子文件登记表》。 4.1.5保管期限属于"永久"、"长期"的电子文件,必须制作至少一份该电子文件的纸质文 本同时归档,并建立准确、可靠的标识与之对应。 4.1.6加密的电子文档归档前应做解密处理,明确其归档内容。归档电子文件名以文件标 题(包含副标题)命名。工程设计电子文件的命名应与相应图纸文件的编号相同;如一 电子文件中含有数张图号图纸时,其命名应包含所有图号,如0801-J0302-061- 2—5dwg(包含了第2张—第5张共4张图号的图纸)或0801-J0302-061- 2、4dwg(包含了第2张、第4张图号的图纸);如同一图号的图纸有数张,并相对应有数个 电子文件时,其电子文件编号应上其张数,如0801-J0302-061-2(P1)DWG、0801- J0302-061-2(P2)DW。 4.2 归档电子文件的检验与移交 4.2.1归档移交部门应当于每年第一季度采用可卸载式归档方案将上一年度应归档的电子 文件移交给综合管理部。 4.2.2归档电子文件的移交内容包括归档电子文件,电子文件原数据表及有关材料。专用 软件产生的电子文件原则上应转换为通用型电子文件
第一章 MATLAB6.5 基础 1.1 MATLAB 语言介绍 1.1.1 MATLAB 产品系列与应用 1.1.2 MATLAB6.5 的新特点 1.2 MATLAB 语言基础 1.2.1 认识 MATLAB6.5 环境 1.2.2 MATLAB6.5 变量和表达式 1.2.3 数组的产生 1.2.4 数组的操作 1.2.5 常用的数学函数 1.2.6 数组的运算 1.2.7 数组的扩展 1.2.8 数组的转换 1.2.9 MATLAB 控制语句 1.2.10 其它控制语句 1.2.11 文件操作 1.2.12 M 文件 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 3.1.2 Figure 对象 3.1.3 Uicontrol 对象 3.1.4 Uimenu 对象 3.1.5 Axes 对象 3.1.6 Image 对象 3.1.7 Line 对象 3.1.8 Patch 对象 3.1.9 Rectangle 对象 3.1.10 Surface 对象 3.1.11 Light 对象 3.1.12 Text 对象 第四章 MATLAB 图形对象操作 4.1 图形对象的属性 4.2 图形对象句柄的获取 4.2.1 对象创建时获取 4.2.2 层次关系来获取 4.2.3 当前对象的获取 4.2.4 根据对象属性值的获取 4.3 图形对象句柄的删除与判断 4.3.1 句柄的删除 4.3.2 句柄的判断 4.4 图形对象属性值的获取与设置 4.4.1 图形对象属性值的设置 4.4.2 图形对象属性值的获取 4.4.3 用户缺省值的操作 4.5 图形对象的其它操作 4.5.1 figflag 函数 4.5.2 findfigs 函数 4.5.3 copyobj 函数 4.5.4 capture 函数 4.5.5 refresh 函数 4.5.6 saveas 函数 4.5.7 hgload 函数和 hgsave 函数 4.5.8 newplot 函数 第五章 GUI 设计 5.1 认识 GUI 环境 5.1.1 版面设计工具 5.1.2 属性编辑器 5.1.3 菜单编辑器 5.1.4 调整工具 5.1.5 对象浏览器 5.1.6 TAB 次序编辑器 5.1.7 GUIDE 环境设置 5.2 GUI 设计 5.2.1 GUI 设计原则 5.2.2 GUI 设计步骤 5.3 GUI 实现 5.3.1 组件的布局 5.3.2 属性编辑 5.3.3 回调函数 5.4 GUI 实例 5.4.1 组件布局 5.4.2 属性值的修改 5.4.3 回调函数 5.4.4 调试程序 5.4.5 执行的效果 5.4.6 结束语 第六章 MATLAB 特殊图形的绘制 6.1 区域图 6.2 填充图 6.2.1 二维填充图 6.2.2 三维填充图 6.3 条形图 6.3.1 二维条形图 6.3.1 三维条形图 6.4 直方图 6.4.1 笛卡儿坐标系下的直方图 6.4.2 极坐标系下的直方图 6.5 圆体图 6.5.1 圆柱体的绘制 6.5.2 球体的绘制 6.5.3 椭圆体的绘制 6.6 饼图 6.6.1 二维饼图 6.6.2 三维饼图 6.7 排列图 6.8 离散图形的绘制 6.8.1 二维柄状图 6.8.2 三维柄状图 6.8.3 阶梯图 6.9 散点图 6.9.1 二维散点图 6.9.2 三维散点图 6.9.3 散点图矩阵 6.10 轮廓图 6.10.1 二维轮廓图 6.10.2 三维轮廓图 6.11 向量图 6.11.1 罗盘图 6.11.2 羽状图 6.11.3 箭头图 6.11.4 法线图 第七章 MATLAB 高级绘图功能 7.1 彗星图 7.1.1 二维彗星轨迹图 7.1.2 三维彗星轨迹图 7.2 帧动画 7.3 程序动画 7.4 色图变幻 7.5 Voronoi 图和三角剖分 7.6 四面体 7.7 彩带图 7.7.1 彩带图 7.7.2 三维流彩带图 7.8 伪彩图 7.9 切片图 7.9.1 切片图 7.9.2 切片轮廓线图 7.10 网格图和曲面图特效 7.10.1 显示轮廓线 7.10.2 显示围裙 7.10.3 瀑布效果 7.10.4 带光照模式的阴影图 7.11 函数绘图 7.12 三维图形控制 7.12.1 视点 7.12.2 图形旋转 7.12.3 灯光效果 7.12.4 色彩控制 第八章 数字图像原理 8.1 图像 8.2 数字图像处理学 8.2.1 数字图像处理方法 8.2.2 数字图像处理的主要内容 8.3 图像文件格式 8.4 图像类型 8.4.1 索引图像 8.4.2 灰度图像 8.4.3 RGB 图像 8.4.4 二值图像 8.4.5 图像序列 8.4.6 图形类型判断 8.5 图像类型转换 8.5.1 dither 函数 8.5.2 gray2ind 函数 8.5.3 grayslice 函数 8.5.4 im2bw 函数 8.5.5 ind2gray 函数 8.5.6 ind2rgb 函数 8.5.7 mat2gray 函数 8.5.8 rgb2gray 函数 8.5.9 rgb2ind 函数 8.6 MATLAB 中的 8 位和 16 位图像 8.6.1 8 位和 16 位索引图像 8.6.2 8 位和 16 位灰度图像 8.6.3 8 位和 16 位 RGB 图像 8.7 图像文件的操作 8.7.1 查询图像文件的信息 8.7.2 图像文件的读取 8.7.3 图像文件的存储 8.7.4 图像数据类型的转换 8.7.5 图像文件格式的转换 第九章 MATLAB 图像显示与色彩 9.1 图像显示 9.1.1 imshow 函数 9.1.2 显示索引图像 9.1.3 显示灰度图像 9.1.4 显示二值图像 9.1.5 显示真彩图像 9.1.6 直接从磁盘文件中显示图像 9.2 特殊图像显示技术 9.2.1 显示颜色条 9.2.2 显示多帧图像序列 9.2.3 显示多幅图像序列 9.3 纹理映射 9.4 图像颜色 9.4.1 图像的退色处理 9.4.2 MATLAB 的颜色模型 9.4.3 MATLAB 颜色模型的转换 9.4.4 色彩处理 第十章 MATLAB 图像正交变换 10.1 正交变换通用算子 10.2 傅立叶变换 10.2.1 傅立叶变换的原理 10.2.2 傅立叶性质 10.2.3 二维离散傅立叶变换( 2DDFT ) 10.2.4 快速傅立叶变换( FFT ) 10.2.5 傅立叶变换的研究与应用 10.3 离散余弦变换 10.3.1 DCT 变换矩阵 10.3.2 dct2 函数和 dctmtx 函数 10.4 Walsh- Hadamard 变换 10.5 Radon 变换 10.6 小波变换 10.6.1 小波的定义 10.6.2 小波变换函数 10.6.3 小波变换实例 10.6.4 小波除噪与压缩函数 第十一章 滤波器的设计 11.1 线性滤波 11.1.1 卷积与相关 11.1.2 imfilter 滤波函数 11.1.3 预定义滤波 11.2 FIR 滤波器的设计 11.2.1 FIR 滤波器基础 11.2.2 计算二维频率响应 11.2.3 计算期望频率响应矩阵 11.2.4 频率变换法 11.2.5 频率采样法 11.2.6 窗函数法 第十二章 MATLAB 图像运算 12.1 图像点的运算 12.1.1 线性点运算 12.1.2 非线性点运算 12.2 图像的算术运算 12.2.1 加法运算 12.2.2 减 法运算 12.2.3 乘法 运算 12.2.4 除法 运算 12.2.5 其它运算 12.3 图像的位逻辑运算 12.4 图像的几何运算 12.4.1 图像插值 12.4.2 图像缩放 12.4.3 图像旋转 12.4.4 图像剪切 12.5 空间变换 12.5.1 仿射变换( affine transformation ) 12.5.2 透视变换 (Perspective Transformation) 12.5.3 空间变换的 MATLAB 函数 12.5.4 空间变换实例 12.6 图像融合 12.7 邻域与块操作 12.7.1 邻域操作 12.7.2 图像块操作 12.8 区域处理 12.8.1 区域选择 12.8.2 区域滤波 12.8.3 区域填充 第十三章 MATLAB 图像增强 13.1 灰度变换增强 13.1.1 像素值及其统计特性 13.1.2 直方图灰度变换 13.1.3 直方图均衡化 13.1.4 直方图规定化 13.2 空域滤波增强 13.2.1 平滑滤波器 13.2.2 锐化滤波器 13.3 频域增强 13.3.1 低通滤波器 13.3.2 高通滤波器 13.3.3 同态滤波器 13.3.4 频域增强 MATLAB 实例 13.4 色彩增强 13.4.1 真彩色增强 13.4.2 伪彩色增强 13.5 小波增强 第十四章 图像复原 14.1 退化模型 14.1.1 连续退化模型 14.1.2 离散退化模型 14.2 复原的代数方法 14.2.1 代数复原原理 14.2.2 逆滤波复原 14.2.3 最小二乘方滤波 14.3 MATLAB 实现图像复原 14.3.1 维纳滤波复原 14.3.2 规则化滤波复原 14.3.3 Lucy-Richardson 复原 14.3.4 盲去卷积复原 14.3.5 图像复原的其它 MATLAB 函数 第十五章 图像分析 15.1 边缘检测 15.1.1 微分算子 15.1.2 Log算子 15.1.3 Canny 算子 15.2 四叉树分解 15.2.1 四叉树分解 15.2.2 四叉树 MATLAB 函数 第十六章 数学形态学操作 16.1 数学形态学的基本运算 16.1.1 结构元素矩阵 16.1.2 膨胀运算 16.1.3 腐蚀运算 16.1.4 膨胀与腐蚀的对偶关系 16.1.5 开运算和闭运算 16.1.6 击中与击不中 16.1.7 二值图像形态学处理函数 16.1.8 其它膨胀和腐蚀的基本函数 16.2 形态学的基本应用 16.2.1 边缘提取 16.2.2 连通对象标注 16.2.3 对象选择 16.2.4 二值图像面积提取 16.2.5 二值图像的欧拉数 16.2.6 移除对象 16.2.7 区域填充 16.3 查找表操作 16.4 灰度形态学 16.4.1 灰度形态学基本运算实例 16.4.2 其它函数 第十七 章 图像编码与压缩 17.1 图像编码基础 17.1.1 图像编码压缩的必要性 17.1.2 图像编码压缩的可能性 17.1.3 图像编码压缩的分类 17.1.4 图像编码压缩的评价 17.2 无损压缩编码 17.2.1 行程编码 17.2.2 哈夫曼( Huffman )编码 17.2.3 算术编码 17.2.4 词典编码 17.3 有损压缩编码 17.3.1 预测编码 17.3.2 正交变换编码 17.3.3 MATLAB 实现余弦变换压缩 17.3.4 MATLAB 实现小波变换压缩 附录 A 对象属性 附录 B 图像工具箱函数
文 件 清 单,,,,, ,,,,, 序号,文件编号,文件名称,修订人,完成日期,编写部门 1,M-001,质量手册,刘,39688,ISO 2,P-001,文件与记录管理程序,薄,39680,ISO 3,P-002,内外信息交流与协商控制程序,薄,39681,ISO 4,P-003,管理评审控制程序,薄,39681,ISO 5,P-004,产品审核程序,刘,39685,ISO 6,P-005,过程审核程序,刘,39685,ISO 7,P-006,体系审核程序,刘,39685,ISO 8,P-007,持续改进程序,刘,39687,ISO 9,P-008,纠正与预防措施控制程序,刘,39687,品保课 10,P-009,质量成本管理程序,薄,39682,财务 11,P-010,采购与供应商管理程序,薄,39686,采购 12,P-011,先期产品质量策划管理程序,刘,39680,技术 13,P-012,过程失效模式及后果分析程序,刘,39680,技术 14,P-013,生产件批准程序,刘,39681,技术 15,P-014,控制计划管理程序,刘,39681,技术 16,P-015,生产设备管理程序,刘,39682,技术 17,P-016,工程变更管理程序,刘,39688,技术 18,P-017,顾客抱怨处理程序,薄,39685,品保 19,P-018,测量系统分析程序,刘,39685,品管 20,P-019,统计过程控制程序,刘,39686,品管 21,P-020,检验、测量和试验设备控制程序,赖,39683,品管 22,P-021,实验室管理程序,赖,39685,品管 23,P-022,检验与监查管理程序,刘,39686,品管 24,P-023,不合格品控制程序,刘,39687,品管 25,P-024,经营计划管理程序,薄,39682,企画 26,P-025,应急计划程序,薄,39683,企画 27,P-026,人力资源管理程序,薄,39684,行政 28,P-027,顾客要求评审程序,薄,39685,营运 29,P-028,顾客满意度管理程序,刘,39686,营运 30,P-029,生产制程管理程序,刘,39681,制造 31,P-030,产品标识和可追溯性程序,刘,39682,资材 32,P-031,产品搬运、贮存、包装与防护管理程序,刘,39683,资材 33,P-032,批量号管理程序,,, 34,P-033,外包管理程序,,, 34,S-001(QA),,,,ISO 35,S-002(QA),,,, 36,S-003(QA),,,, 37,S-004(QA),,,, 38,S-005(QA),,,, 39,S-006(QA),,,, 40,S-007(QA),,,, 41,S-008(QA),,,, 42,S-001(AD),,,, 43,S-002(AD),,,, 44,S-003(AD),,,, 45,S-004(AD),,,, 46,S-005(AD),,,, 47,S-006(AD),,,, ,,,,, ,,,,, ,S-001(ISO),7S管理规定,,, ,,,,, ,,,,, ,,,,, ,,,,, ,,,,, ,,,,, ,,,,, ts16949系统文件编写计划.xls 兼容性报表,,, 运行环境: 2008-8-28 05:46,,, ,,, 因为 Excel 2007 之前的 Excel 版本不支持此工作簿中的某些功能,如果以此格式保存,则这些功能将丢失或降级。,,, ,,, 轻微保真损失,,,发生次数 ,,, 所选文件格式不支持此工作簿中某些单元格或样式包含的格式。这些格式将被转换为最相近的可用格式。,,,1 ,,, ,,,

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值