文档库 最新最全的文档下载
当前位置:文档库 › 图的实验报告

图的实验报告

图的实验报告
图的实验报告

《数据结构》实验报告

题目:图

一、实现图的邻接矩阵和邻接表存储(一)需求分析

对于下图所示的有向图G,编写一个程序完成如下功能:1.建立G的邻接矩阵并输出之

2.由G的邻接矩阵产生邻接表并输出之

3.再由2的邻接表产生对应的邻接矩阵并输出之

(二)系统设计

1、本程序中用到的所有抽象数据类型的定义;

typedef struct

{ int no;

InfoType info;

} VertexType; //顶点类型

typedef struct //图的定义

{ int edges[MAXV][MAXV];

int vexnum,arcnum;

VertexType vexs[MAXV];

} MGraph; //图的邻接矩阵类型typedef struct ANode //弧的结点结构类型{ int adjvex;

struct ANode *nextarc;

InfoType info;

} ArcNode;

typedef int Vertex;

typedef struct Vnode //邻接表头结点的类型

{ Vertex data;

ArcNode *firstarc; //指向第一条弧

} VNode;

typedef VNode AdjList[MAXV]; //AdjList是邻接表类型typedef struct

{

AdjList adjlist; //邻接表 int n,e;

} ALGraph; //图的邻接表类型

2、主程序的流程以及各程序模块之间的层次调用关系,函数的调用关系图:

3、列出各个功能模块的主要功能及输入输出参数

void MatToList(MGraph g,ALGraph *&G) 将邻接矩阵g 转换成邻接表G void DispMat(MGraph g) 输出邻接矩阵g void DispAdj(ALGraph *G) 输出邻接表G

int OutDegree(ALGraph *G ,int v) 求图中每个顶点的出度 (三)调试分析

调试过程中还是出现了一些拼写错误,经检查后都能及时修正。有些是语法设计上的小错误,比如一些参变量的初始值设置错误,使得程序调试出错。在小组讨论分析后纠正了这些结果,并尽量改进了算法的性能,减小时间复杂度。

将邻接矩阵g 转换成邻接表G ,输出邻接矩阵g ,输出邻接表G 的算法时间复杂度都是O(n^2)。

通过这次实验,对图的存储方法有了更深刻的印象。 (四)测试结果 测试结果:

(1)有向图G 的邻接矩阵为 0 1 0 4 0 0 9 2 3 5 8 0 0 0 6 0

(2)图G 的邻接矩阵转换成的邻接表为: 0:1 3 1:2 3 2:0 1 2 3:2

(五)用户手册

Main()

DispMat(g);输出邻

接矩阵g

DispAdj(G);输出

邻接表G

MatToList(g,G);将邻接矩阵g 转换成邻接表G

不需要输入参数

(六)附录

源程序

#include

#include

#define MAXV 100 //最大顶点个数

#define INF 32767 //INF表示∞

typedef int InfoType;

typedef struct

{

int no; //顶点编号

InfoType info; //顶点其他信息

} VertexType; //顶点类型

typedef struct //图的定义

{

int edges[MAXV][MAXV]; //邻接矩阵

int vexnum,arcnum; //顶点数,弧数

VertexType vexs[MAXV]; //存放顶点信息

} MGraph; //图的邻接矩阵类型

typedef struct ANode //弧的结点结构类型

{

int adjvex; //该弧的终点位置

struct ANode *nextarc; //指向下一条弧的指针

InfoType info; //该弧的相关信息,这里用于存放权值

} ArcNode;

typedef int Vertex;

typedef struct Vnode //邻接表头结点的类型

{

Vertex data; //顶点信息

ArcNode *firstarc; //指向第一条弧

} VNode;

typedef VNode AdjList[MAXV]; //AdjList是邻接表类型

typedef struct

{

AdjList adjlist; //邻接表

int n,e; //图中顶点数n和边数e

} ALGraph; //图的邻接表类型

void MatToList(MGraph g,ALGraph *&G)//将邻接矩阵g转换成邻接表G

{

int i,j,n=g.vexnum; //n为顶点数

ArcNode *p;

G=(ALGraph *)malloc(sizeof(ALGraph));

for (i=0;i

G->adjlist[i].firstarc=NULL;

for (i=0;i=0;j--)

if (g.edges[i][j]!=0) //邻接矩阵的当前元素不为0

{

p=(ArcNode *)malloc(sizeof(ArcNode)); //创建一个结点*p

p->adjvex=j;

p->info=g.edges[i][j];

p->nextarc=G->adjlist[i].firstarc; //将*p链到链表后

G->adjlist[i].firstarc=p;

}

G->n=n;G->e=g.arcnum;

}

void DispMat(MGraph g)

//输出邻接矩阵g

{

int i,j;

for (i=0;i

{

for (j=0;j

if (g.edges[i][j]==INF)

printf("%3s","∞");

else

printf("%3d",g.edges[i][j]);

printf("\n");

}

}

void DispAdj(ALGraph *G)

//输出邻接表G

{

int i;

ArcNode *p;

for (i=0;in;i++)

{

p=G->adjlist[i].firstarc;

if (p!=NULL) printf("%3d: ",i);

while (p!=NULL)

{

printf("%3d",p->adjvex);

p=p->nextarc;

}

printf("\n");

}

}

int OutDegree(ALGraph *G,int v)//求图中每个顶点的出度{

ArcNode *p;

int n=0;

p=G->adjlist[v].firstarc;

while(p!=NULL)

{ n++;

p=p->nextarc;

}

return n;

}

void main()

{

int i,j;

MGraph g,g1;

ALGraph *G;

int A[MAXV][4]={

{0,1,0,4},

{0,0,9,2},

{3,5,8,0},

{0,0,6,0},};

g.vexnum=4;g.arcnum=8;

for (i=0;i

for (j=0;j

g.edges[i][j]=A[i][j];

printf("\n");

printf(" (1)有向图G的邻接矩阵为:\n");

DispMat(g);

G=(ALGraph *)malloc(sizeof(ALGraph));

printf(" (2)图G的邻接矩阵转换成邻接表为:\n");

MatToList(g,G);

DispAdj(G);

}

运行后结果显示:

二、实现图的遍历算法

(一)需求分析

对于上图G,编写一个程序输出从顶点0开始的深度优先遍历序列(递归算法)和广度优先遍历序列(非递归算法)。

(二)系统设计

1.说明本程序中用到的所有抽象数据类型的定义;

typedef struct{

char vexs[MaxVertexNum]; //顶点表

int edges[MaxV ertexNum][MaxVertexNum]; //邻接矩阵,可看作边表

int n,e; //图中的顶点数n和边数e

}MGraph; //用邻接矩阵表示的图的类型

2.主程序的流程以及各程序模块之间的层次调用关系,画出函数的调用关系图。

Main()

CreatMGraph(G)建立邻接矩阵DFS(G); 深度

优先遍历

BFS(G,0); 以序号

为3的顶点开始广

度优先遍历

3.列出各个功能模块的主要功能及输入输出参数。

void CreatMGraph(MGraph *G) 创建邻接矩阵G

void DFSM(MGraph *G,int i) 以Vi为出发点对0-1邻接矩阵表示的图G进行DFS搜索

void DFS(MGraph *G) 深度优先遍历

void BFS(MGraph *G,int k) 以Vk为源点对用邻接矩阵表示的图G进行广度优先遍历(三)调试分析

调试过程中还是出现了一些拼写错误,经检查后都能及时修正。有些是语法设计上的小错误,比如一些参变量的初始值设置错误,使得程序调试出错。在小组讨论分析后纠正了这些结果,并尽量改进了算法的性能,减小时间复杂度。

创建邻接矩阵算法的时间复杂度是O(2n+n^2),深度优先遍历和广度优先遍历的算法时间复杂度都是O(n^2)。

通过这次实验,加深了对遍历图的递归和非递归的算法的印象。

(四)测试结果

输入节点数8和边数9,各节点标示01234567,边是01,02,13,14,25,26,37,47,56,运行后深度优先遍历是01374256,广度优先遍历是01234567。

(五)用户手册

根据提示输入节点和边数,然后再由提示输入各节点标示,接下来输入各边。运行后便得到深度优先遍历和广度优先遍历结果。

(六)附录

源程序:

#include"stdio.h"

#include"stdlib.h"

#define MaxVertexNum 100 //定义最大顶点数

typedef struct{

char vexs[MaxVertexNum]; //顶点表

int edges[MaxV ertexNum][MaxVertexNum]; //邻接矩阵,可看作边表

int n,e; //图中的顶点数n和边数e

}MGraph; //用邻接矩阵表示的图的类型

void CreatMGraph(MGraph *G)//建立邻接矩阵

{

int i,j,k;

char a;

printf("Input VertexNum(n) and EdgesNum(e): ");

scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数

scanf("%c",&a);

printf("Input Vertex string:");

for(i=0;in;i++)

{

scanf("%c",&a);

G->vexs[i]=a; //读入顶点信息,建立顶点表

}

for(i=0;in;i++)

for(j=0;jn;j++)

G->edges[i][j]=0; //初始化邻接矩阵

printf("Input edges,Creat Adjacency Matrix\n");

for(k=0;ke;k++) { //读入e条边,建立邻接矩阵

scanf("%d%d",&i,&j); //输入边(Vi,Vj)的顶点序号

G->edges[i][j]=1;

G->edges[j][i]=1; //若为无向图,矩阵为对称矩阵;若建立有向图,去掉该条语句

}

}

typedef enum{FALSE,TRUE} Boolean;

Boolean visited[MaxVertexNum];

void DFSM(MGraph *G,int i)

{ //以Vi为出发点对邻接矩阵表示的图G进行DFS搜索,邻接矩阵是0,1矩阵int j;

printf("%c",G->vexs[i]); //访问顶点Vi

visited[i]=TRUE; //置已访问标志

for(j=0;jn;j++) //依次搜索Vi的邻接点

if(G->edges[i][j]==1 && ! visited[j])

DFSM(G,j); //(Vi,Vj)∈E,且Vj未访问过,故Vj为新出发点}

void DFS(MGraph *G)

{

int i;

for(i=0;in;i++)

visited[i]=FALSE; //标志向量初始化

for(i=0;in;i++)

if(!visited[i]) //Vi未访问过

DFSM(G,i); //以Vi为源点开始DFS搜索

}

void BFS(MGraph *G,int k)

{ //以Vk为源点对用邻接矩阵表示的图G进行广度优先搜索int i,j,f=0,r=0;

int cq[MaxVertexNum]; //定义队列

for(i=0;in;i++)

visited[i]=FALSE; //标志向量初始化

for(i=0;in;i++)

cq[i]=-1; //队列初始化

printf("%c",G->vexs[k]); //访问源点Vk

visited[k]=TRUE;

cq[r]=k; //Vk已访问,将其入队。注意,实际上是将其序号入队

while(cq[f]!=-1) { //队非空则执行

i=cq[f]; f=f+1; //Vf出队

for(j=0;jn;j++) //依次Vi的邻接点Vj

if(G->edges[i][j]==1 && !visited[j]) { //Vj未访问

printf("%c",G->vexs[j]); //访问Vj

visited[j]=TRUE;

r=r+1; cq[r]=j; //访问过Vj入队

}

}

}

void main()

{

int i;

MGraph *G;

G=(MGraph *)malloc(sizeof(MGraph)); //为图G申请内存空间CreatMGraph(G); //建立邻接矩阵

printf("Print Graph DFS: ");

DFS(G); //深度优先遍历

printf("\n");

printf("Print Graph BFS: ");

BFS(G,0); //以序号为3的顶点开始广度优先遍历printf("\n");

}

测试结果

计算机图形学实验报告

《计算机图形学》实验报告姓名:郭子玉 学号:2012211632 班级:计算机12-2班 实验地点:逸夫楼507 实验时间:15.04.10 15.04.17

实验一 1 实验目的和要求 理解直线生成的原理;掌握典型直线生成算法;掌握步处理、分析实验数据的能力; 编程实现DDA 算法、Bresenham 中点算法;对于给定起点和终点的直线,分别调用DDA 算法和Bresenham 中点算法进行批量绘制,并记录两种算法的绘制时间;利用excel 等数据分析软件,将试验结果编制成表格,并绘制折线图比较两种算法的性能。 2 实验环境和工具 开发环境:Visual C++ 6.0 实验平台:Experiment_Frame_One (自制平台) 3 实验结果 3.1 程序流程图 (1)DDA 算法 是 否 否 是 是 开始 计算k ,b K<=1 x=x+1;y=y+k; 绘点 x<=X1 y<=Y1 绘点 y=y+1;x=x+1/k; 结束

(2)Mid_Bresenham 算法 是 否 否 是 是 是 否 是 否 开始 计算dx,dy dx>dy D=dx-2*dy 绘点 D<0 y=y+1;D = D + 2*dx - 2*dy; x=x+1; D = D - 2*dy; x=x+1; x

3.2程序代码 //-------------------------算法实现------------------------------// //绘制像素的函数DrawPixel(x, y); (1)DDA算法 void CExperiment_Frame_OneView::DDA(int X0, int Y0, int X1, int Y1) { //----------请实现DDA算法------------// float k, b; float d; k = float(Y1 - Y0)/float(X1 - X0); b = float(X1*Y0 - X0*Y1)/float(X1 - X0); if(fabs(k)<= 1) { if(X0 > X1) { int temp = X0; X0 = X1; X1 = temp; }

一步测量测站实验

数字测图实验报告 班级2013012班 专业地理信息科学 组别第六组 组员王宁 华北水利水电大学资源与环境学院地理信息科学教研室

数字测图实验报告一 [实验名称] 一步测量测站实验 [实验目的] 1 对图根控制测量少设一次站,少跑一遍路,提高外业效率 2 进行内业导线平差处理的时候,如果误差超限,不需要全部重新测量,只需要在错误处重新架仪器进行测量,提高工作效率。 [仪器和工具] 外业;全站仪、尺子、标尺、棱镜 内业:CASS软件 [实验原理] 一步测量法"即在图根导线选点、埋桩以后,图根导线测量和碎部测量同步进行。一步测量法"对图根控制测量少设一次站,少跑一遍路,提高外业效率是明显的。如果导线闭合差超限,只需重测导线错误处,用正确的导线点坐标,进行坐标改正,可以通过坐标的旋转。平移进行改正,然后对本站所测的全部碎部点重算就可重新绘图,因而在数字测图中采用"一步测量法"是合适的。 [实验步骤] (一外业工作) 1. 在一个已知控制点架仪器,对中,调平,并记录仪器高和棱镜高。 2.找到一个已知坐标的控制点,当做定点2,并且把定点2的坐标输入进仪器中记录下来。在已知点的后方再选择一个已知控制点作为定向点1,把棱镜立在1处,记录棱镜高。在2处后视1,把数据记录下来。以1 2为定向边。

3. 先选好两个图根点3和4,以便进行闭合导线测量。把棱镜立在一个图根点3处,在2处前视图根点3,把所有数据记录下来以便内业计算。 4. 把仪器搬到图根点3处,对中调平并且记录仪器高。 5. 分别把棱镜立在原点2处和图根点4处,后视2,前视图根点4,记录所有数据。另外,在3点测量几个碎步点,也把数据记录下来。 6. 把仪器立在图根点4处,对中调平,记录仪器高。 7.分别把棱镜立在图根点3处和原控制点2处,,后视图根点3,前视原点2,记录所有数据。在4点测量几个碎步点坐标,并记录数据。 8. 此时记录出来的2点坐标就可以和已知2点坐标作对比,进行内业导线平差处理。 4 3 定向边 2 1 (二)内业处理 1. 对所有已经记录的数据进行编号,并把它们输入到记事本中,把后缀名更改为.dat格式,以便在CASS中展绘。

图像处理实验报告

重庆交通大学 学生实验报告 实验课程名称数字图像处理 开课实验室数学实验室 学院理学院年级信息与计算科学专业 2 班学生姓名李伟凯学号631122020203 开课时间2014 至2015 学年第 1 学期

实验(一)图像处理基础 ?实验目的 学习Matlab软件的图像处理工具箱,掌握常用的一些图像处理命令;通过编程实现几种简单的图像增强算法,加强对图像增强的理解。 ?实验内容 题目A.打开Matlab软件帮助,学习了解Matlab中图像处理工具箱的基本功能;题目B.掌握以下常见图像处理函数的使用: imread( ) imageinfo( ) imwrite( ) imopen( ) imclose( ) imshow( ) impixel( ) imresize( ) imadjust( ) imnoise( ) imrotate( ) im2bw( ) rgb2gray( ) 题目C.编程实现对图像的线性灰度拉伸y = ax + b,函数形式为:imstrech(I, a, b); 题目D.编程实现对图像进行直方图均衡化处理,并将实验结果与Matab中imhist 命令结果比较。 三、实验结果 1).基本图像处理函数的使用: I=imread('rice.png'); se = strel('disk',1); I_opened = imopen(I,se); %对边缘进行平滑 subplot(1,2,1), imshow(I), title('原始图像') subplot(1,2,2), imshow(I_opened), title('平滑图像') 原始图像平滑图像

图的遍历实验报告

实验四:图的遍历 题目:图及其应用——图的遍历 班级:姓名:学号:完成日期: 一.需求分析 1.问题描述:很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示在连通的无向图上访问全部结点的操作。 2.基本要求:以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 3.测试数据:教科书图7.33。暂时忽略里程,起点为北京。 4.实现提示:设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制,注意,生成树的边是有向边,端点顺序不能颠倒。 5.选作内容: (1).借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。 (2).以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。 二.概要设计 1.为实现上述功能,需要有一个图的抽象数据类型。该抽象数据类型的定义为: ADT Graph { 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R: R={VR} VR={ | v,w v且P(v,w),表示从v到w得弧,谓词P(v,w)定义了弧的意义或信息} } ADT Graph 2.此抽象数据类型中的一些常量如下: #define TRUE 1 #define FALSE 0 #define OK 1 #define max_n 20 //最大顶点数 typedef char VertexType[20]; typedef enum{DG, DN, AG, AN} GraphKind; enum BOOL{False,True}; 3.树的结构体类型如下所示:

实验报告

高级过程控制实验 ——PLC实验 姓名:王珠 学号:2011200811 班级:信研1101班 指导教师:赵众(教授)

实验一交通信号灯控制的编程实验 实验目的:进一步熟悉可编程序控制器的指令系统,熟悉时序控制程序的设计和调试方法。 实验装置:S7-300可编程序控制器 实验内容: 十字路口交通灯控制实验 (1)控制开关 信号灯受一个启动开关控制,当开关接通时,信号灯系统开始工作;当开关断开时,所有信号灯都熄灭。 (2)控制要求 南北红灯亮维持40s,同时东西绿灯也亮,维持50s。东西绿灯熄灭的同时东西红灯亮,南北绿灯亮,且东西红灯维持40s,南北绿灯维持50s。依次循环。 根据控制要求,画出交通灯的状态图,设计出红、绿灯的梯形图,将程序写入可编程序控制器,检查无误后运行程序。 新建项目“交通灯”,选择LAD语言,在OB1中输入下列程序:

图1 OB1中的交通灯程序 程序结果: 当电源开关一打开,T1、T2开始计时,T3、T4不计时。当T1计时时间不到时,Q1.2输出为1,即南北绿灯亮,此时Q1.4东西红灯也亮;当T1计时完40s时,Q1.2南北绿灯灭,但T1仍在计时,东西红灯继续亮。当T2计时完50s 后,T3、T4开始计时,当T3开始计时时,Q1.6东西绿灯亮,同时,Q1.0南北红灯亮,当T3计时完40s后,Q1.6东西绿灯灭,但是Q1.0东西红灯依旧亮,直到T4计时完50s。接下来重复电源开关刚开时的动作,这样就完成了交通灯实验的要求。 用PLCSIM模拟运行该程序,点击I1.0使其为1状态。Q1.0代表南北红灯,Q1.2代表南北绿灯,Q1.4代表东西红灯,Q1.6代表东西绿灯。南北绿灯维持40s,灭,东西红灯再维持10s,灭;换为东西绿灯维持40s,灭;南北红灯再维持10s, 灭。依照此规律循环不断。下面是仿真图像:

机构运动简图的测绘实验报告doc

机构运动简图的测绘实验报告 篇一:机构运动简图的测绘和分析试验报告 实验一机构运动简图的测绘和分析 一. 实验目的 1. 学会根据各种机械实物或模型,绘制机构运动简图; 2. 分析和验证机构自由度,进一步理解机构自由度的概念,掌握机构自由度的计算方法; 3. 加深对机构结构分析的了解。 二. 设备和工具 1. 各类典型机械的实物(如:缝纫机等) 2. 各类典型机械的模型(如:内燃机模型、牛头刨床等); 3. 钢皮尺,内外卡钳,量角器(根据需要选用); 4. 三角板,铅笔,橡皮,稿纸(自备)。 三. 原理和方法 1. 原理 由于机构和运动仅与机构中所有的构件的数目的构件所组成的运动副的数目、类型、相对位置有关,因此,在绘制机构运动简图时,可以撇开构件的形状和运动副的具体构造,而用一些简略的符号(如教科书和机械设计手册中有关“常用构件的运动副简图符号”的规定)来代替构件和运动副,并按一定的比例尺表示运动副的相对位置,以此表明机

构的运动特征。表1-1为常用符号示例。 2. 方法 (1)确定组成机构的构件数目 测绘时使被测绘机械缓慢运动,仔细观测机构的运动,区分各个运动单元,从而确定组成机构的构件数目,找出原动件。 (2)测绘运动副的种类、数目 根据相联接两构件的接触情况及相对运动的特点,确定各个运动副的种类。 (3)合理选择投影面,坐标和原动件位置 选与机构的各个构件上的点运动平面皆平行的平面,或选能反映机构运动特征的其他平面做投影面。 转动(或移动)原动件,找出每个构件都能表达清楚的原动件位置。 (4)绘机构运动简图的示意图 徒手按规定的符号,凭目测,使图与实物大致成比例(转动副位置、移动副导路方 位,高副接触点及曲率),从原动件开始,依构件的连接次序,逐渐画出机构运动简图的示意图。用数字1、2、3??区分构件,用字母A、B、C??区分运动副。 (5)绘正式机构运动简图 仔细测量与机构运动有关的尺寸,即转动副间的中心距

数据结构实验报告-图的遍历

数据结构实验报告 实验:图的遍历 一、实验目的: 1、理解并掌握图的逻辑结构和物理结构——邻接矩阵、邻接表 2、掌握图的构造方法 3、掌握图的邻接矩阵、邻接表存储方式下基本操作的实现算法 4、掌握图的深度优先遍历和广度优先原理 二、实验内容: 1、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接矩阵存储改图。 2、输入顶点数、边数、每个顶点的值以及每一条边的信息,构造一个无向图G,并用邻接表存储该图 3、深度优先遍历第一步中构造的图G,输出得到的节点序列 4、广度优先遍历第一部中构造的图G,输出得到的节点序列 三、实验要求: 1、无向图中的相关信息要从终端以正确的方式输入; 2、具体的输入和输出格式不限; 3、算法要具有较好的健壮性,对错误操作要做适当处理; 4、程序算法作简短的文字注释。 四、程序实现及结果: 1、邻接矩阵: #include #include #define VERTEX_MAX 30 #define MAXSIZE 20 typedef struct { int arcs[VERTEX_MAX][VERTEX_MAX] ; int vexnum,arcnum; } MGraph; void creat_MGraph1(MGraph *g) { int i,j,k; int n,m; printf("请输入顶点数和边数:"); scanf("%d%d",&n,&m); g->vexnum=n; g->arcnum=m; for (i=0;iarcs[i][j]=0;

UML统一建模语言-实验报告2-活动图及状态图

《UML技术》课程实验报告 专业: 班级: 学号: 姓名: 日期: 2013 年 10 月 11 日

一、实验题目 活动图及状态图 二、实验目的 1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。 三、实验内容及原理 通过前面内容的学习,完成了对TJKD图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务: 1. 完成图书业务模块中还书用例的状态图。 1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。 2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。 分析: 还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息; 四、实验步骤 第一个 (1)在用例图中,找到删除的用例,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose 工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。 (2)新建好活动图后,双击删除的活动图,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool (3)接着在左边的工具上选取开始点,并在administrator的泳道上添加;添加完开始结点后,再来为此活动图添加活动,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系 (4)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框结束(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete (6)最后,在删除后,系统会返回操作结果给操作者;删除成功或删除失败系统都会有信息返回给操作者。 (7)根据分析设计情况,进一步添加或细化活动图 第二个 (1)在用例图中的还书(revesion)用例,单击右键,新建一个状态图,命名为revesion状态图,(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态

数字测图实习心得体会3篇

数字测图实习心得体会3篇 数字测图系统是以计算机及其软件为核心在外接输入输出设备的支持下,对地形空间数据进行采集、输入、成图、绘图、输出、管理的测绘系统。下面是数字测图实习心得体会,希望可以帮到大家。 篇一:数字测图实习心得体会 这次实习,相比于以往的教学型实习,这次实习,相比于以往的教学型实习,真正的工程(实习)显然能够更好的体会所学到的知识。事实也确实是如此,通过这次实习,我真正的体会到了理论联系实际的重要性。测区属于山西的一部分,动植物种类较少,地势不是太,地貌比较复杂,但在这实习的一年里还是体会到了从未有过的艰辛。现在细细想来,这一年的经历,虽然艰苦,但却学到了很多,不仅仅是测量的实际能力,更有面对困难的忍耐。 我明白了扎实的专业知识是提高工作水平的坚实基础.在学校学习专业知识时,可 能感觉枯燥无味,但当你工作以后,你才会发现专业知识是多么的重要.如我学的工程测量.在学校我们只学了些皮毛, 通过毕业测量实习,我学到了很多,比如对软件的操作更加熟练,加强了对所学知识的理解和掌握,很大程度上提高了动手和动脑的能力。书上得来终觉浅,绝知此事要躬行。在实习中,面对的是实实在在的任务,来不得半点推委和逃避。因此,这让我深深明白理论知识的重要,在学校余下的时间里,我要安心把所学的理论知识进行梳理和回顾,做到胸中有沟壑,一目了然。为以后实际的工作打下坚实的基础。 测量学首先是一项精确的工作,通过在学校期间在课堂上对测量学的学习,使我在脑海中形成了一个基本的、理论的测量学轮廓,而实习的目的,就是要将这些理论与实际工程联系起来,这就是工科的特点。测量学是研究地球的形状和大小以及地面点位的科学,从本质上讲,测量学主要完成的任务就是确定地面目标在三维空间的位置以及随时间的变化。在信息社会里,测量学的作用日益重要,测量成果做为地球信息系统的基础,提供了最基本的空间位置信息。构建信息高速公路、基础地理信息系统及各种专题的和专业的地理信息系统,均迫切要求建立具有统一标准,可共享的测量数据库和测量成果信息系统。因此测量成为获取和更新基础地理信息最可靠,最准确的手段。测量学的分类有很多种,如普通测量学、大地测量学、摄影测量学、工程测量学。作为测绘工程专业的跑棱镜的,我们要学习测量的各个方面。测绘学基础就是这些专业知识的基础。

工图实验报告

工图实验报告

————————————————————————————————作者: ————————————————————————————————日期: ?

实验一 一.实验目的 1.学会打开、关闭和保存图形文件和熟悉AutoCAD的界面。 2.熟悉AutoCAD环境及常用绘图命和编辑命令。 3.学会部分常用绘图命令和编辑命令,掌握工具栏的调用方法。二.实验内容 根据立体图和尺寸,在AutoCAD上画出立体图的三视图。

三.实验步骤 (说明:给出实验内容具体描述,以及具体操作步骤) 第一题: 1.启动AutoCAD。 2.选择新建文件 选择一个样板文件,之后打开创建新文件。 3.系统环境设置 设置背景色,窗口元素配置、靶框大小设置 4.绘图单位格式设置。 设置图形单位:长度和角度,精度 5.构件图层,设计颜色,线型及线宽。 粗实线?黑色实线0.7mm 细实线??黑色?实线0.3mm 粗实线?黑色?虚线?0.7mm 6.首先画主视图。 1)选择粗实线图层。 2)首先使用矩形命令(Rectang):依次输入矩形的第一角点坐标和第二角点坐标。 3)再用直线命令(line)依次画出主视图上的轮廓线,在用打断命令(break)在矩形的下边打断合适的一段。 7.画出左视图 1)按一定的尺寸用直线命令画出左视图的所有最大轮廓线,与主视图的高平齐。 2)在选择虚线图层,将看不到的部分用虚线画出。 8.画出俯视图 1)选择粗实线图层。 2)按一定尺寸,与主视图长对正,与左视图的宽相等。画出俯视图的最大轮廓线。

第二题: 1.启动AutoCAD。 2.选择新建文件。 3.系统环境设置 4.构件图层,设计颜色,线型及线宽。 5.画主视图: 1)选择粗实线的图层 2)用矩形命令画出一个长为100,宽为60的矩形。 3)之后用倒角命令将矩形的上边的两侧各选长为25,两侧的边各选30,之后倒角。 4)在用直线命令画出上面的凹槽。之后打断(break)凹槽上方。 5)之后用同样的方法打断长为65的距离。在画出下方的凹槽。 6)在用直线命令画出矩形里面的两个轮廓线。 6.画左视图: 1)用直线命令先画一个与主视图高平齐的矩形。 2)先将矩形下面的两个直角的两边剪切掉长为15高为12 的小矩形。 3)在用直线命令画出矩形内部的轮廓线。 4)切换虚实线的图层。 5)画出立体图的上下两个凹槽的底边轮廓线。 7.画俯视图。 1)切换粗实线图层。 2)首先画一个与主视图长对正,与左视图的宽相等的矩形。 3)用倒角命令将矩形的四个角各倒掉上面为长25,两边为15的角。 4)再用直线画出立体图上方的凹槽的轮廓线。 5)切换虚线图层。 6)用直线命令画出立体图下方的凹槽的轮廓线。 四.实验结果 第一题:

数字图像处理实验报告 (2)

目录 实验一:数字图像的基本处理操作 (2) 1.1:实验目的 (2) 1.2:实验任务和要求 (2) 1.3:实验步骤和结果 (2) 1.4:结果分析 (6) 实验二:图像的灰度变换和直方图变换 (7) 2.1:实验目的 (7) 2.2:实验任务和要求 (7) 2.3:实验步骤和结果 (7) 2.4:结果分析 (11) 实验三:图像的平滑处理 (11) 3.1:实验目的 (11) 3.2:实验任务和要求 (11) 3.3:实验步骤和结果 (12) 3.4:结果分析 (15) 实验四:图像的锐化处理 (16) 4.1:实验目的 (16) 4.2:实验任务和要求 (16) 4.3:实验步骤和结果 (16) 4.4:结果分析 (18)

实验一:数字图像的基本处理操作 1.1:实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。 1.2:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 1.3:实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\tp.jpg'); i=rgb2gray(a); I=im2bw(a,0.5); subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图1.1 所示:

图像处理实验报告

实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日

实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;

图的深度优先遍历实验报告

一.实验目的 熟悉图的存储结构,掌握用单链表存储数据元素信息和数据元素之间的关系的信息的方法,并能运用图的深度优先搜索遍历一个图,对其输出。 二.实验原理 深度优先搜索遍历是树的先根遍历的推广。假设初始状态时图中所有顶点未曾访问,则深度优先搜索可从图中某个顶点v出发,访问此顶点,然后依次从v的未被访问的邻接点出发深度优先遍历图,直至图中所有与v有路径相通的顶点都被访问到;若此时图有顶点未被访问,则另选图中一个未曾访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 图的邻接表的存储表示: #define MAX_VERTEX_NUM 20 #define MAXNAME 10 typedef char VertexType[MAXNAME]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; }ArcNode; typedef struct VNode{ VertexType data; ArcNode *firstarc;

}VNode,AdjList[MAX_VERTEX_NUM]; typedef struct{ AdjList vertices; int vexnum,arcnum; int kind; }ALGraph; 三.实验容 编写LocateVex函数,Create函数,print函数,main函数,输入要构造的图的相关信息,得到其邻接表并输出显示。 四。实验步骤 1)结构体定义,预定义,全局变量定义。 #include"stdio.h" #include"stdlib.h" #include"string.h" #define FALSE 0 #define TRUE 1 #define MAX 20 typedef int Boolean; #define MAX_VERTEX_NUM 20

信息系统开发与设计实验九活动图、状态图

福建农林大学计算机与信息学院实验报告 1.实验项目名称:面向对象分析与设计–活动图、状态图 2.实验目的 1.熟悉活动图的基本功能和使用方法。 2.熟悉状态图的基本功能和使用方法。 3.掌握如何使用建模工具绘制活动图方法。 4.掌握如何使用建模工具绘制状态图方法。 3.实验器材 1.计算机一台。 2.Rational Rose 工具软件。 4.实验内容 (1)根据学院的图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程、在删除读者用例描述的基础上,系统分析部指派您完成该项任务。要求:用活动图来描述系统中已知用例的业务过程: 1.描述添加读者用例。 2.描述添加管理员用例。 3.描述新加书籍用例 (2) 通过前面内容的学习,在学院图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。通过还书用例的状态图绘制学习,完成如下任务: 1. 完成图书业务模块中借书用例的状态图。 2. 完成图书业务模块中新加书籍用例的状态图。 绘制“删除读者信息”用例的活动图的实验步骤 删除读者信息一般按照以下步骤进行: (1)管理员在录入界面,输入待删除的读者名; (2)“业务逻辑”组件在数据库中,查找待删除的读者名; (3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除; (5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 5. 实验报告要求 1.整理实验结果。

数字测图实习分析方案(完整)

数字测图实习报告 专业 班级 组号 姓名 学号 指导教师 2018 年 11 月 1 日至 2018 年 11 月12 日 目录

一、实习目的及意义1 二、实习内容及要求1 三、数字地形图测绘基本原理2 四、数字地图测绘过程2 五、参考资料7 六、实习心得8

数字测图实习报告 2018-11-1至2018-11-12我们工程测量技术专业学生在校进行了为期两个星期的数字化测图实习。 一、实习目的及意义 通过这次实习,使我们对《数字化测图》这门课程有一个系统的了解和掌握,进一步加深我们对数字化测图的基本理论和基本知识的理解,提高我们实际操作的能力。本次实习培养了我们理论联系实际,分析问题以及实地解决问题的能力,更要求我们在工作中要实事求是,严谨认真,吃苦耐劳,同时还要团结协作,相互配合,共同完成好小组的实习任务。从各方面锻炼自己,为以后的测量工作打下良好的基础。 二、实习内容及要求 1、实习的具体内容如下: 1、数字地图测绘 <1)练习和掌握全站仪的使用方法; <2)每组测绘一幅1:1000的数字地图; <3)熟悉和掌握南方CASS地形测图软件编辑地形图的基本方法。 2、数字地图的工程应用 <1)完成测站改正; <2)完成设计路线的断面图绘制; <3)用DTM和断面法计算土方量。 3、MAPGIS扫描矢量化 熟悉MAPGIS软件进行扫描矢量化的步骤和方法。 2、实习的具体要求如下 (1)掌握数字化测图的基本过程和基本方法。 (2)掌握并熟练全站仪的使用。 (3)掌握使用数字成图软件<南方CASS)进行数字地图编绘的 方法。

(4)掌握矢量化软件进行地图的扫描矢量化操作步骤和方法。 三、数字地形图测绘基本原理 采用草图法进行数字化测图,主要作业过程分为三个步骤:数据采集,数据处理及地形图的数据输出。在本次实习中利用中纬全站仪进行外业数据采集,在内业计算机上采用南方CASS软件进行数据处理成图。 四、数字地图测绘过程 1、踏勘,选点 本次实习地点是杨凌职业技术学院南校区,地形十分熟悉。 老师带领我们在校区大门口选择一点作为已知点,根据一份小比例尺图,选出一条闭合导线,现场选出导线点,并均匀分布在校内,共计6个点。导线点的选择应注意是否相互通视,架设仪器是否安全方便。 2、控制测量 全站仪测角、测边: 在已知导线点上架设全站仪,对中整平后量取仪器高、开机。同时将棱镜架设在待测点出对中整平。 在全站仪中创建一个文件CL24-02,用来保存测量数据.。 在当前文件下,按照提示输入测站点点号和给定的坐标、仪器高、目标高<取至毫M位),设置EDM,并瞄准后视点,进行后视置零定向。 定向完后仪器照准目标点棱镜,盘左盘右观测并测存,将屏幕显示结果记录在导线坐标记录表上。 导线边长、水平角施测要求及精度要求: ①观测:水平角观测一个测回,起始点采用全圆方向法观 测,内角采用测回法观测;距离测量往测一测回<瞄准目 标一次,读数4次),直接读记平距; ②取位:角度取至秒,距离取至mm,坐标取至mm;

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

实验六 状态图

实验六状态图 [实验目的和要求] 1、掌握状态的定义和组成部分。 2、掌握UML中状态的表示方法。 3、掌握转换的定义及转换的5要素。 4、了解触发事件、监护条件、动作的定义。 5、掌握阅读和绘制状态图的方法。 [实验环境] 1、Windows操作系统(XP、Vista等) 2、Rational Rose2003软件(或RSA8.0) [实验内容和步骤] 1、说出下面状态图所表达的信息。 2、说出下面状态图所表达的信息,并指出蓝色部分代表的含义。

3、根据下面状态图回答问题。 、 GFloor UP entry/ CloseDoor do/ E exit/ motor.stop() WaitingForFloorNum entry/ openDoor Return entry/ closeDoor do/ motor.moveDown() exit/ F Dow n entry/ closeDoor do/ D exit/ motor.stop() goToFloor(n) arrive() arrive() request(floor,direction)[ floor>0 ] request(floor,direction)[ floor==0 ] timeout[ getNextFloor()> A ] B[ C ] timeout[ getNextFloor()==-1&¤tFloor==0 ] / closeDoor arrive() 上图是一个表示电梯系统的状态图,该系统中Controller类和Motor类的详细定义如下图所示: 根据类图,完成上面 状态图中 A,B,C,D,E,F处的内 容。

图像处理 实验报告

摘要: 图像处理,用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。基本内容图像处理一般指数字图像处理。数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。图像处理一般指数字图像处理。 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 设计要求 可视化界面,采用多幅不同形式图像验证系统的正确性; 合理选择不同形式图像,反应各功能模块的效果及验证系统的正确性 对图像进行灰度级映射,对比分析变换前后的直方图变化; 1.课题目的与要求 目的: 基本功能:彩色图像转灰度图像 图像的几何空间变换:平移,旋转,剪切,缩放 图像的算术处理:加、减、乘 图像的灰度拉伸方法(包含参数设置); 直方图的统计和绘制;直方图均衡化和规定化; 要求: 1、熟悉图像点运算、代数运算、几何运算的基本定

义和常见方法; 2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法 3、掌握在MATLAB中进行插值的方法 4、运用MATLAB语言进行图像的插值缩放和插值旋转等 5、学会运用图像的灰度拉伸方法 6、学会运用图像的直方图设计和绘制;以及均衡化和规定化 7、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际2.课题设计内容描述 1>彩色图像转化灰度图像: 大部分图像都是RGB格式。RGB是指红,绿,蓝三色。通常是每一色都是256个级。相当于过去摄影里提到了8级灰阶。 真彩色图像通常是就是指RGB。通常是三个8位,合起来是24位。不过每一个颜色并不一定是8位。比如有些显卡可以显示16位,或者是32位。所以就有16位真彩和32位真彩。 在一些特殊环境下需要将真彩色转换成灰度图像。 1单独处理每一个颜色分量。 2.处理图像的“灰度“,有时候又称为“高度”。边缘加强,平滑,去噪,加 锐度等。 3.当用黑白打印机打印照片时,通常也需要将彩色转成灰白,处理后再打印 4.摄影里,通过黑白照片体现“型体”与“线条”,“光线”。 2>图像的几何空间变化: 图像平移是将图像进行上下左右的等比例变化,不改变图像的特征,只改变位置。 图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fx≠fy,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。 旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。图像的旋转变换也可以用矩阵变换来表示。

相关文档