图的相邻矩阵存储权值是什么叫权值矩阵意思

基于预存储权值矩阵的多尺度Hough变换直线提取算法--《测绘学报》2008年01期
基于预存储权值矩阵的多尺度Hough变换直线提取算法
【摘要】:针对Hough变换提取直线算法在速度、精度和影像大小三方面的局限,提出一种基于预存储权值矩阵的多尺度Hough变换算法。首先阐述对经典Hough变换的改进策略,对参数空间中ρ的分辨率和θ的分辨率的最佳取值也作了探讨,之后详细说明基于预存储权值矩阵的多尺度Hough变换直线提取算法。实验证明,本文提出的算法能显著提高实际影像处理的速度和直线提取的精度,特别是对比较大的影像具有计算量小、抗噪能力强等特点。
【作者单位】:
【关键词】:
【基金】:
【分类号】:TP391.41【正文快照】:
1引言图像中的直线特征是视觉感知的重要线索和解释图像的基本依据!’,’〕,图像中的直线描述形式简洁直观,易于处理、计算,反映了图像边缘的整体特征。但是直线在图像中是以离散的像素点存在的,从图像中的像素点到形成几何意义上的直线是一个图形学实现的逆过程,因此
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
李德仁,周国清;[J];测绘学报;1994年04期
高隽,李成;[J];计算机工程;2000年06期
张祖勋,吴军,张剑清;[J];武汉大学学报(信息科学版);2004年03期
韩秋蕾,朱明,姚志军;[J];仪器仪表学报;2004年S2期
【共引文献】
中国期刊全文数据库
杨顺辽;;[J];电脑与信息技术;2006年05期
匡平;朱清新;陈旭东;;[J];电子测量与仪器学报;2007年03期
唐亮,谢维信,黄建军,谢兴灿,刘洁;[J];计算机学报;2005年07期
周明才,史铁林;[J];机械与电子;2004年04期
王伟华;付启众;李铁军;;[J];雷达科学与技术;2006年06期
陈高华;卓东风;夏锡瑞;;[J];太原科技大学学报;2006年04期
吴军,陈丹清;[J];武汉大学学报(信息科学版);2004年12期
唐亮,谢维信,黄建军,谢兴灿;[J];中国图象图形学报;2004年09期
唐亮,谢维信,黄建军,谢兴灿;[J];中国图象图形学报;2004年10期
中国博士学位论文全文数据库
赵杰;[D];武汉大学;2004年
唐亮;[D];西安电子科技大学;2004年
匡平;[D];电子科技大学;2006年
中国硕士学位论文全文数据库
刘涛;[D];合肥工业大学;2002年
马涛;[D];北京工业大学;2004年
刘笑楠;[D];吉林大学;2004年
张云港;[D];云南师范大学;2005年
张曼祺;[D];河海大学;2006年
郑艺泉;[D];华侨大学;2006年
孔繁兴;[D];哈尔滨工业大学;2006年
高中有;[D];四川大学;2006年
王忠;[D];东南大学;2006年
刘伟;[D];合肥工业大学;2007年
【同被引文献】
中国期刊全文数据库
彭梦;蔡自兴;;[J];电子技术应用;2007年03期
袁西霞;岳建华;赵贤任;;[J];广东工业大学学报;2007年01期
吴福朝,胡占义;[J];自动化学报;2002年04期
张力,张祖勋,张剑清;[J];武汉测绘科技大学学报;1999年01期
朱卫纲,李生良;[J];装备指挥技术学院学报;1999年04期
张坤华,王敬儒,张启衡;[J];光电工程;2001年06期
刘志基;[J];古籍整理研究学刊;2002年03期
曾智勇;张学军;崔江涛;周利华;;[J];光子学报;2006年02期
江铭虎,邓北星,廖盼盼,张博,严峻,丁晔;[J];计算机工程与应用;2004年04期
范春年,陈建坤,傅德胜;[J];计算机工程与应用;2004年24期
中国博士学位论文全文数据库
刘继敏;[D];中国科学院研究生院(计算技术研究所);2000年
陶午沙;[D];国防科学技术大学;2004年
张志龙;[D];国防科学技术大学;2005年
张鹏;[D];国防科学技术大学;2004年
张兵;[D];国防科学技术大学;2005年
中国硕士学位论文全文数据库
宋长波;[D];武汉大学;2004年
赵金鑫;[D];国防科学技术大学;2004年
傅向华;[D];西北农林科技大学;2002年
陈尚锋;[D];中国人民解放军国防科学技术大学;2002年
方晓芙;[D];西北工业大学;2004年
谢建春;[D];西北工业大学;2004年
王淼;[D];国防科学技术大学;2003年
陈琦;[D];浙江工业大学;2005年
吴建华;[D];南京理工大学;2005年
陈旭光;[D];南京理工大学;2005年
【二级参考文献】
中国期刊全文数据库
高隽,张维勇,韩江洪;[J];电子学报;1999年02期
高隽,曹先彬,王煦法;[J];电子学报;1999年07期
刘桂雄,申柏华,冯云庆,胡存银,易静蓉;[J];光学精密工程;2002年03期
高隽,张维勇,蒋建国,曹先彬,王煦法;[J];系统工程与电子技术;1999年03期
【相似文献】
中国期刊全文数据库
王素玉;沈兰荪;卓力;李晓光;;[J];电子学报;2009年06期
高隽,李成;[J];计算机工程;2000年06期
魏晓峰;吴健平;;[J];测绘与空间地理信息;2005年06期
魏艳华;;[J];科技信息(科学教研);2007年15期
娄帅;丁振良;袁峰;李晶;;[J];光学精密工程;2009年11期
王伟;毕笃彦;熊磊;;[J];计算机应用;2010年12期
冯进玫,丁群,孙晓军,杨自恒,张方毅;[J];电测与仪表;2005年03期
张煜东;吴乐南;王水花;;[J];计算机工程与应用;2011年09期
胡学刚;孙慧芬;王顺;;[J];四川大学学报(工程科学版);2010年01期
辜小花;龚卫国;杨利平;;[J];光学精密工程;2011年03期
中国重要会议论文全文数据库
张永亮;卢焕章;贺兴华;刘晓春;;[A];第十四届全国信号处理学术年会(CCSP-2009)论文集[C];2009年
杜以华;高金花;文振焜;;[A];第七届和谐人机环境联合学术会议(HHME2011)论文集【oral】[C];2011年
中国博士学位论文全文数据库
辜小花;[D];重庆大学;2011年
张永亮;[D];国防科学技术大学;2009年
中国硕士学位论文全文数据库
卢光献;[D];西安电子科技大学;2011年
李岱;[D];兰州理工大学;2012年
席秋波;[D];电子科技大学;2010年
张国;[D];重庆理工大学;2011年
刘楠;[D];南方医科大学;2011年
毕一鸣;[D];南方医科大学;2010年
李海燕;[D];哈尔滨工程大学;2011年
石美;[D];合肥工业大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号各种图的创办以及广度,深度优先遍历(临接矩阵存储) - 编程当前位置:& &&&各种图的创办以及广度,深度优先遍历(临接矩阵存储各种图的创办以及广度,深度优先遍历(临接矩阵存储)&&网友分享于:&&浏览:0次各种图的创建以及广度,深度优先遍历(临接矩阵存储)#include &stdio.h&
#include &iostream&
#include &limits.h&
#include &queue&
#define INFINTY INT_MAX
#define MaxVertexNum 100
//最大顶点数
typedef enum{DG,UDG,DN,UDN} GraphK
//图的种类(有向图,无向图,又向网,无向网)
typedef char VertexT
//顶点类型
typedef int AdjT
//边的关系类型(对于无权图,用1/0表示是否相邻;
// 对带权图,则为权值类型)
typedef char InfoT
typedef struct {
//该弧相关信息的指针
}ArcCell,AdjMatrix[MaxVertexNum][MaxVertexNum];
//定义弧和邻接矩阵
typedef struct {
VertexType vertex[MaxVertexNum]; //顶点向量
//邻接矩阵
int vexnum,
//图的当前顶点数和弧数
int visited[MaxVertexNum];
//标示每个顶点是否被访问过
void CreateGraph(MGraph *G);
int LocateVex(MGraph *G,VertexType v);
void CreateDG(MGraph *G);
void CreateDN(MGraph *G);
void CreateUDG(MGraph *G);
void CreateUDN(MGraph *G);
void CommonInit(MGraph *G);
void display(MGraph *G);
void InsertDGArc(MGraph *G,VertexType v,VertexType w);
void InsertUDGArc(MGraph *G,VertexType v,VertexType w);
void DFSTraver(MGraph *G);
void BFSTraver(MGraph *G);
int main()
CreateGraph(&G);
DFSTraver(&G);
BFSTraver(&G);
void CreateGraph(MGraph *G)
printf(&please enter the kind of the graph(DG:0,UDG:1,DN:2,UDN:3):&);
scanf(&%d&,(int *)&(G-&kind));
switch(G-&kind) {
CreateDG(G);
CreateUDG(G);
CreateDN(G);
CreateUDN(G);
//求顶点位置函数
int LocateVex(MGraph *G,VertexType v)
for(i=0;i&G-&i++)
if(G-&vertex[i] == v)
return -1;
void CommonInit(MGraph *G)
//如果为0,则不含其它信息。
//1.确定顶点数和弧数
printf(&please enter vexnum , arcnum and is info(1 or 0):&);
scanf(&%d%d%d&,&(G-&vexnum),&(G-&arcnum),&infoflag);
//2.确定各个顶点的值
printf(&the value of each vertex:&);
for(int i=0;i&G-&i++)
//getchar();
scanf(& %c&,&(G-&vertex[i]));
//3.初始化邻接矩阵
for (int i = 0; i & G-& ++i)
for(int j=0;j& G-&j++)
G-&arcs[i][j].adj = 0;
G-&arcs[i][j].info = NULL;
//插入又向边
void InsertDGArc(MGraph *G,VertexType v,VertexType w)
int i = LocateVex(G,v);
int j = LocateVex(G,w);
if(i&=0 && j&=0)
G-&arcs[i][j].adj = 1;
//插入无向边
void InsertUDGArc(MGraph *G,VertexType v,VertexType w)
int i = LocateVex(G,v);
int j = LocateVex(G,w);
if(i&=0 && j&=0) {
G-&arcs[j][i].adj = 1;
G-&arcs[i][j].adj = 1;
//创建有向图
void CreateDG(MGraph *G)
CommonInit(G);
VertexType v1,v2;
//确定邻接矩阵
printf(&please input %d heads and %d tails:\n&,G-&arcnum,G-&arcnum);
for(int k=0; k&G-& k++)
scanf(& %c %c&,&v1,&v2);
InsertDGArc(G,v1,v2);
display(G);
//创建无向图
void CreateUDG(MGraph *G)
CommonInit(G);
VertexType v1,v2;
//确定邻接矩阵
printf(&please input %d heads and %d tails:\n&,G-&arcnum,G-&arcnum);
for(int k=0; k&G-& k++)
scanf(& %c %c&,&v1,&v2);
InsertUDGArc(G,v1,v2);
display(G);
//创建又向网
void CreateDN(MGraph *G)
VertexType v1,v2;
CommonInit(G);
//初始化邻接矩阵
for (int i = 0; i & G-& ++i)
for(int j=0;j& G-&j++)
G-&arcs[i][j].adj = INFINTY;
//确定邻接矩阵
printf(&please input %d heads and %d tails and weights:\n&,G-&arcnum,G-&arcnum);
for(int k=0; k&G-& k++)
scanf(& %c %c %d&,&v1,&v2,&weight);
int i = LocateVex(G,v1);
int j = LocateVex(G,v2);
if(i&=0 && j&=0)
G-&arcs[i][j].adj =
display(G);
//创建无向网
void CreateUDN(MGraph *G)
VertexType v1,v2;
CommonInit(G);
//初始化邻接矩阵
for (int i = 0; i & G-& ++i)
for(int j=0;j& G-&j++)
G-&arcs[i][j].adj = INFINTY;
//确定邻接矩阵
printf(&please input %d heads and %d tails and weights:\n&,G-&arcnum,G-&arcnum);
for(int k=0; k&G-& k++)
scanf(& %c %c %d&,&v1,&v2,&weight);
int i = LocateVex(G,v1);
int j = LocateVex(G,v2);
if(i&=0 && j&=0)
G-&arcs[i][j].adj =
G-&arcs[j][i].adj =
display(G);
void display(MGraph *G)
for(int i=0;i&G-&i++)
for(int j=0;j&G-&j++)
printf(&%d &,G-&arcs[i][j].adj);
printf(&\n&);
void Visit(MGraph *G,int v)
printf(&%c &,G-&vertex[v]);
void DFS(MGraph *G,int v)
Visit(G,v);
G-&visited[v] = 1;
for(int i=0;i&G-&i++) {
if(!(G-&visited[i]) && G-&arcs[v][i].adj == 1){
//cout&&G-&visited[i];
//深度优先遍历
void DFSTraver(MGraph *G)
for (int i = 0; i & G-& i++)
G-&visited[i] = 0;
printf(&DFSTraver:\n&);
for (int i = 0; i & G-& i++)
if(!G-&visited[i])
//返回节点v的第一个临接顶点
int FirstAdjVertex(MGraph *G,int v)
for (int i = 0; i & G-& i++)
if(G-&arcs[v][i].adj==1 && i!=v)
return -1;//如果没有,返回-1
//返回v相对于w的下一个临接点
int NextAdjVex(MGraph *G,int v,int w)
for (int i = w+1; i & G-& i++)
if(G-&arcs[v][i].adj==1 && i!=v)
return -1;
void BFS(MGraph *G,int v)
Visit(G,v);
G-&visited[v] = 1;
queue&int&
q.push(v);
while(!q.empty())
w = q.front();
q.pop(); //队头元素出队
while(w!=-1)
if(!G-&visited[w])
Visit(G,w);
G-&visited[w] = 1;
q.push(w);
w = NextAdjVex(G,v,w);
//广度度优先遍历
void BFSTraver(MGraph *G)
printf(&\nBFSTraver:\n&);
for (int i = 0; i & G-& i++)
G-&visited[i] = 0;
for (int i = 0; i & G-& i++)
if(!G-&visited[i])
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 1234567891011 Copyright & &&版权所有博客访问: 2267002
博文数量: 409
博客积分: 10227
博客等级: 上将
技术积分: 9485
注册时间:
认证徽章:
非淡泊无以明志,非宁静无以致远
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: C/C++
G=(VE)nGnA[i,j]=1,if (vi,vj)EG
& A[i,j]=0,if (vi,vj)EG
1nAii=01in
2Aij=Aji1in1jn
3nnnnn+1/2
5iiiODvi[IDvi]
& A[I,j]=Wij& &&&&&&&&&if (Vi,Vj)E(G)
& A[I,j]=0& if (Vi,Vj)E(G)
const int MaxVertices=10;
const int MaxWeight=32767;
class AdjMWGraph
&& int Vertices[10];&&&&&&&&&& //
&& int Edge[MaxVertices][MaxVertices];&&&&&&&& //
&&& int numE;&&&&&&&&&&& //
&&& int numV;&&&&&&&&&&& //
&&& public: ;&&&&&&&&& //
&&& private: ;&&&&&&&&& //
EdgeTyPe01
S(n)=0(n2)
2.&&& &Adjacency List1
data&& adjvex
:① adjvexvivjj② next&
dest& weight&& next
&&& nen2e&&& vivi&
3) &&& &&&&vivi(vi)
阅读(1813) | 评论(0) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
有向图的邻接矩阵存储结构.ppt89页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:120 &&
有向图的邻接矩阵存储结构
你可能关注的文档:
··········
··········
拓扑排序及其应用 * 拓扑排序 无环的有向图叫有向无环图 DAG
考虑计算机专业学生的学习
这是一个系统工程,每一门课程的学习是整个工程中的一个活动。其中有些课程要求有先修课程,有些则不要求。这样在有些课程之间有先后关系,有些课程可以并行地学习 * 拓扑排序 C1 高等数学 C2 程序设计基础 C3 离散数学 C1,
C4 数据结构 C2,
C3 C5 高级语言程序设计 C2 C6 编译原理 C4,
C5 C7 操作系统 C4,
C9 C8 普通物理 C1 C9 计算机原理 C8 * 拓扑排序 我们用一种有向图来表示课程的开设,在这种有向图中,顶点表示活动,弧表示活动的先后关系,这种有向图叫做顶点代表活动 Activity On Vertices 的网,简称AOV网 * 在AOV网中,弧 i, j 表示活动i应先于活动j开始,即活动i必须完成后,活动j才可以开始,并称i为j的直接前驱,j为i的直接后继。这种前驱与后继的关系有传递性 此外,任何活动i不能以它自己作为自己的前驱或后继,这叫做自反性 从前驱和后继的传递性和自反性来看,AOV网中不能出现有向环。在AOV网中如果出现了有向环,则意味着某项活动必须以自己作为先决条件,这是悖论,工程将无法进行。对程序流程而言,将出现死循环 因此,对给定的AOV网,应先判断它是否存在有向环 判断AOV网是否存在有向环的方法是对该AOV网进行拓扑排序,将AOV网中顶点排列成一个线性序列,若该线性序列中包含AOV网的全部顶点,则AOV网无环;否则AOV网中存在有向环,该AOV网所代表的工程是不可行的 拓扑排序 * 将有向无环图中的所有顶点在不违反先决条件的情况下排列成一个线性序列的过程叫拓扑排序
例如,对学生选课图进行拓扑排序,得到的拓扑序列为C1,C2,C3,C4,C5,C6,C8,C9,C7
或C1,C8,C9,C2,C5,C3,C4,C7,C6 拓扑排序的定义
正在加载中,请稍后...表示法/邻接矩阵
在图的邻接矩阵表示法中:① 用邻接矩阵表示顶点间的相邻关系② 用一个顺序表来存储顶点信息图的矩阵设G=(V,E)是具有n个顶点的图,则G的邻接矩阵是具有如下性质的n阶方阵:邻接矩阵【例】下图中无向图G 5 和有向图G 6 的邻接矩阵分别为A l 和A 2 。邻接矩阵网络矩阵若G是网络,则邻接矩阵可定义为:邻接矩阵其中:w ij 表示边上的权值;∞表示一个计算机允许的、大于所有边上权值的数。【例】下面带权图的两种邻接矩阵分别为A 3 和A 4 。邻接矩阵图的邻接矩阵存储结构形式说明#define MaxVertexNum l00 //最大顶点数,应由用户定义typedef char VertexT //顶点类型应由用户定义typedef int EdgeT //边上的权值类型应由用户定义typedef struct{VextexType vexs[MaxVertexNum] //顶点表EdeType edges[MaxVertexNum][MaxVertexNum];//邻接矩阵,可看作边表int n,e; //图中当前的顶点数和边数}MG注意:① 在简单应用中,可直接用二维数组作为图的邻接矩阵(顶点表及顶点数等均可省略)。② 当邻接矩阵中的元素仅表示相应的边是否存在时,EdgeTyPe可定义为值为0和1的枚举类型。③无向图的邻接矩阵是对称矩阵,对规模特大的邻接矩阵可压缩存储。④邻接矩阵表示法的空间复杂度S(n)=0(n 2 )。⑤建立无向网络的算法。void CreateMGraph(MGraph *G){//建立无向网的邻接矩阵表示int i,j,k,w;scanf("%d%d",&G->n,&G->e); //输入顶点数和边数for(i = 0;i <i++) //读入顶点信息,建立顶点表{G->vexs=getchar();}for(i = 0;i n;i++){for(j = 0;j n;j++){G->edges[i][j] = 0; //邻接矩阵初始化}}for(k = 0;k e;k++){//读入e条边,建立邻接矩阵scanf("%d%d%d",&i,&j,&w); //输入边(v i ,v j )上的权wG->edges[i][j]=w;G->edges[j][i]=w;}}//CreateMGraph该算法的执行时间是0(n+n 2 +e)。由于e根据图的定义可知,图的逻辑结构分为两部分:V和E的集合。因此,用一个一维数组存放图中所有顶点数据;用一个二维数组存放顶点间关系(边或弧)的数据,称这个二维数组为邻接矩阵。邻接矩阵又分为有向图邻接矩阵和无向图邻接矩阵。Matlab表达N=4;//图中的节点数目dag=zeros(N,N);//邻接矩阵初始化,值均为0C=1;S=2;R=3;W=4;//制定各节点编号dag(C,[RS])=1;//有两条有向边:C->R,C->Sdag(R,W)=1;//有向边:R->Wdag(S,W)=1;//有向边:S->W
显示方式: |
计算机科学
共有124个词条
万方数据期刊论文
中国电机工程学报
万方数据期刊论文
万方数据期刊论文
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:11次
参与编辑人数:10位
最近更新时间: 18:48:54
贡献光荣榜}

我要回帖

更多关于 图的权值矩阵 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信