数字摄影测量实习报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字摄影测量实习报告书 学 号:20111000684 班级序号: 113112-05 姓 名: 舒 超 指导老师: 宋 妍 成 绩: 中国地质大学(武汉) 信息工程学院遥感科学技术系 2014年6月 目录 TOC \o 1-3 \h \z \u 实习一:Moravec算子点特征提取 3 1.1 实习目的: 3 1.2 实习原理: 3 1.3 实习步骤以及代码分析: 4 1.4 结果分析: 8 实习二:边缘提取算法 10 2.1 实习目的: 10 2.2 实习原理: 10 2.3 实习步骤以及代码: 10 2.4 结果分析: 12 实习总结 13 实习一:Moravec算子点特征提取 1.1 实习目的: 用程序设计语言(VisualC++或者C语言)编写一个完整的提取点特征的程序,通过对提供的图像数据进行特征点提取,输出提取出的点特征坐标。本实验的目的在于让学生深入理解Moravec算子原理。通过上机调试程序加强动手能力的培养,通过对实验结果的分析,增强学生综合运用所学知识解决实际问题的能力。 1.2 实习原理: Moravec角点检测算法是最早的角点检测算法之一。该算法将角点定义为具有低“自相关性”的点。算法会检测图像的每一个像素,将像素周边的一个邻域作为一个patch,并检测这个patch和周围其他patch的相关性。这种相关性通过两个patch间的平方差之和(SSD)来衡量,SSD值越小则相似性越高。 如果像素位于平滑图像区域内,周围的patch都会非常相似。如果像素在边缘上,则周围的patch在与边缘正交的方向上会有很大差异,在与边缘平行的方向上则较为相似。而如果像素是各个方向上都有变化的特征点,则周围所有的patch都不会很相似。 Moravec会计算每个像素patch和周围patch的SSD最小值作为强度值,取局部强度最大的点作为特征点。 1.3 实习步骤以及代码分析: 步骤流程图如下: 程序实现以及相关关键代码: voidCMy2010302590183cylView::OnMoravec()//读取图像以及相关算法 { //TODO:Addyourcommandhandlercodehere CMmoravecDlgdlg; dlg.DoModal(); CMy2010302590183cylDoc*pDoc=GetDocument(); LPSTRm_pDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc-hdib);//得到句柄内存起始地址存放位图数据hdib句柄变量存放BMP位图 ::GlobalUnlock((HGLOBAL)pDoc-hdib); LPBITMAPINFOm_pBMP;//指向BITMAPINFO结构的指针 m_pBMP=(LPBITMAPINFO)::GlobalLock(pDoc-hdib); //获取指向BITMAPINFO结构的指针 ::GlobalUnlock((HGLOBAL)pDoc-hdib); intBitCount=m_pBMP-bmiHeader.biBitCount; DWORDWidth=::DIBWidth(m_pDIB);//获取位图宽 DWORDHeight=::DIBHeight(m_pDIB);//获取位图高 LPBYTElpData=(LPBYTE)::FindDIBBits(m_pDIB);//定义字符指针变量,原位图指针 intWidthBytes=WIDTHBYTES(Width*BitCount);//获取字节 DWORDpixelCount=WidthBytes*Height; intck1=dlg.c1; intck2=dlg.c2; doubleyz=dlg.m_yuzhi; DWORDr,c; INTh; double*xx=newdouble[Width*Height]; intk; k=INT(ck1/2); for(r=ck1/2;rHeight-ck1/2;r++) for(c=ck1/2;cWidth-ck1/2;c++) { doublemin,v[4]={0.0}; for(h=0;h=ck1-1;h++) { v[0]+=pow((double)(*((BYTE*)(lpData+r*WidthBytes+(c-k+h)))-*((BYTE*)(lpData+(r)*WidthBytes+(c-k+1+h)))),2);//0°方向 v[1]

文档评论(0)

有志者事竟成 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7114163151000053

1亿VIP精品文档

相关文档