Moravec算子提取特征点

合集下载

点特征提取

点特征提取
一、目的 理解影像中每个像素灰度值的概念;理解点特征在灰度方面的特点;掌握常用的点特 征提取算子,及其对应的点特征提取方法,包括:Moravec 算子、Forstner 算子。 二、要求 运用 VC++、C#、MATLAB 其中一种自己擅长的语言,实现两种点特征提取算法。 三、仪器设备 笔记本电脑 四、实验概况 2016 年 11.24 我们在主楼 413 教师进行了点特征模拟实验,程序由老师给定,图片由老师 给定,我们每个人的任务是理解程序并且会操作,每个人操作一遍。 五、提取点特征的原理与过程 (一) Moravec 算子提取过程 a. 读取灰度影像,得到影像的灰度矩阵; b. 计算各像元的兴趣值 IV:
i k k 1 V2 ( g c i ,r i g c i 1,r i 1 )2 i k k 1 V3 ( g c ,r i gc ,r i 1 )2 i k k 1 V4 ( g c i ,r i gc i 1,r i 1 )2 i k V1
-7-
指 导 教 师 意 见 成绩评定: 指导教师签字: 年 月

教 学 单 位 意 见
负责人签字: (单位盖章) 年 月 日
备 注
注:模拟实践结束时,由实习学生填写本表后,交指导教师和教学单位签署意见,最后交 所在教学单位归档保管。
-8-
a. 计算各像素的 Robert’s 梯度 ;
g gi 1, j 1 gi , j u g gv gi , j 1 gi 1, j v gu
b. 计算 ll(如 55 或更大)窗口中灰度的协方差矩阵 ;
-1-
QN
2 gu c k 1 r k 1 i c k j r k c k 1 r k 1

几种特征点提取算子的分析和比较

几种特征点提取算子的分析和比较

点位 于 轮廓 线 的最 大 曲率 处 , 或者 两 条 线 段 交 叉 点 处; 第 2类是 基 于信 号 的兴趣算 子 ; 第 3类是 基 于模 板 的兴 趣 算 子 , 这 种 分 类 针 对 具 体 特 征 点 设 计 模 板, 精度 可 以达 到 子 像 素 级 但 是适 用 性 不 强 _ 2 ] 。本
( 3 ) 在 一定 大小 的窗 口内选 取灰 度 方 差 最 大 的
2 特征点提取 的原理 和步骤
目前有 很 多 学 者 致 力 于 兴 趣 算 子 的改 进 和 研 究, 希望 能够 尽 可能 多 且 准 确 快 速 的 提取 影 像 中 的 特 征点 。根 据兴 趣 算 子 的性 质 可 以将 其 分 为 3类 :
Mo r a v e c算子 F o r s t n e r 算子
文 献标 识 码 : A
Ha r r i s算子
文章编号 : 1 6 7 2 —4 0 9 7 ( 2 0 1 5 ) 0 3—0 0 1 5 —0 4
1 引

计算像素灰度方差 , 选择灰度方差最小值作为像 素
的兴趣 值 , 通 过 设 定 一 个 经 验 阈值 , 将 兴 趣 值 大 于
( 1 . 江苏省水文水资源勘测 局南通分 局 , 江苏 南通 2 2 6 0 0 6 ; 2 . 武汉大学遥感信 息工程学 院 , 湖北 武汉 4 3 0 0 7 9 )


特征 点提 取是影像 分析和影像 匹配的基础 , 也是 单幅 影像 处理 最重要 的任务 之一 , 主要 应用各种 算子提
首先 详 细 阐 述 了 Mo r a v e e算 子 、 F o r s t n e r算 子 和 Ha r r i s 算 子 的原理及 实 现 步 骤 , 然 后 通 过 对 比分 析 3种算 子 的实 现结果 比较 了 3种 算子 的优 缺点 。

点特征提取算法.

点特征提取算法.

点特征提取算法摘要:在摄影测量中,有一些较为著名的点特征提取算子,如:Moravee算子、Forsmer算子与Hannah算子等。

将叙述Moravec算子和Forsmer算子的基本原理,从提取点的定位准确性及速度两个方面对两种算子进行比较,并重点分析利用Moravec算子提取特征点实现过程分析。

关键词:特征提取;点特征;Moravec算子点特征是影像最基本的特征,它是指那些灰度信号在二维方向上都有明显变化的点,如角点、圆点等。

点特征可以应用于诸如图像的配准与匹配,目标描述与识别,光束计算,运动目标跟踪、识别和立体像对3D建模等众多领域。

使用点特征进行处理,可以减少参与计算的数据量,同时又不损害图像的重要灰度信息,在匹配运算中能够较大的提高匹配速度,因而受到人们的关注。

提取点特征的算子称为兴趣算子或有利算子(interest Operator),即利用某种算法从影像中提取人们感兴趣的,有利于某种目的的点。

在影像分析和计算机的视觉领域,根据不同应用目的选择有效的点特征提取。

1 Moravec兴趣算子Moravec于1977年提出利用灰度方差提取点特征的算子。

Moravee算子是在四个主要方向上,选择具有最大一最小灰度方差的点作为特征点。

第一步,计算各像元的兴趣值IV(in terestv aIue)。

第二步,给定一经验阈值,将兴趣值大于该阈值的点(即兴趣值计算窗口的中心点)作为候选点。

阈值的选择应以候选点中包括所需要的特征点,叉不含过多的非特征点为原则。

第三步,选取候选点中的极值点作为特征点。

除了以上方法,还可以尝试首先利用边缘提取方法提取整个图象的边缘轮廓,然后在此轮廓内利用以上特征点提取方法提取特征点。

2 Forstner兴趣算子Forstner算子是从影像中提取点(角点、圆点等)特征的一种较为有效的算子。

Foratner算子通过计算各像素的Robert梯度和以像素(c,r)为中心的一个窗口的灰度协方差矩阵,在影像中寻找具有尽可能小而且接近圆的点作为特征点,它通过计算各影像点的兴趣值并采用抑制局部极小点的方法提取特征点。

摄影测量 5.26

摄影测量   5.26

一、名词解释(4分每题,共20分)1、框标设置在摄影机焦平面(承影面)上位置固定的光学机械标志,用于在焦平面上(亦即像片上)建立像方坐标系。

2摄影航高以摄区内的平均高程面作为摄影基准面,摄影机的物镜中心至该面的距离。

1、数字摄影测量是以数字影像为基础,用计算机进行分析和处理,确定被摄物体的形状、大小、空间位置及性质的技术。

2、合面:过投影中心作一水平面平行于地面,这一个平面称为真水平面,也叫合面;核面:摄影基线与地面点所作平面。

3、摄影测量与非摄影测量观测值的联合平差指的是在摄影测量平差中使用了更一般的原始的非摄影测量观测值或条件。

4、有限元法把地面分成适当大小的有限单元,在单元内,用一个简单的函数来描述所求的曲面,并保证相邻单元之间有连续(或光滑)的过渡,这种内插方法称为有限元法。

5、数字微分纠正或数字纠正根据有关的参数与数字地面模型,利用相应的构像方程式,或按一定的数学模型用控制点解算,从原始非正摄投影的数字影像获取正射影像,这种过程是将影像化为很多微小的区域逐一进行纠正,且使用的是数字方式处理,1、相对定向:确定一个立体像对的相对位置称为相对定向。

2、核线:核面与像片面的交线称为核线,对于同一核面的左右像片的核线,称为同名核线。

3、数字高程模型:若地面点按一定格网形式排列,点的平面坐标X、Y可由起始原点推算而无需记录,地面形态只用点的高程Z来表达,这种数据列阵称为数字高程模型(DEM)4、立体像对:在两摄站点对同一地面景物摄取有一定影像重叠的两张像片5、前方交会:由立体像对中两张像片的内、外方位元素和像点坐标来确定相应地面点在物方空间坐标系中坐标的方法1.摄影测量学:摄影测量是从非接触成像系统,通过记录、量测、分析与表达等处理,获取地球及其环境和其他物体的几何、属性等可靠信息工艺、科学与技术。

2.空间前方交会:通过立体像对像点坐标和提供的像片的内、外方位元素求地面控制点在摄影测量坐标系中的坐标。

点特征提取算法研究

点特征提取算法研究

点特征提取算法研究作者:周时伦来源:《科学与财富》2013年第07期摘要:点特征提取是图像匹配与图像理解的基础,在数字摄影测量与遥感领域得到了广泛的应用。

本文介绍了Moravec算子、Forstner算子和Harris角点提取算法的基本原理,对其实验结果进行了分析与比较,并为Moravec算子的改进提供了建议。

关键词:点特征 Moravec算子 Forstner算子 Harris角点提取1 引言图像特征的研究是图像领域中一个重要的研究方向,图像特征的提取被广泛地应用于图像匹配、图像识别、图像分割等诸多方面。

作为图像的基本特征,点特征一般认为是指灰度信号在二维方向上有明显变化的点,如角点、圆点、交叉点等[1]。

点特征提取是最常采用的一种图像特征提取,也是数字摄影测量的关键技术之一,其定位精度在很大程度上影响了数字摄影测量过程中相对定向与绝对定向的定向结果。

因此点特征提取算法的研究在数字摄影测量学中有重要的意义。

近年来,学者们已经提出了多种点特征提取算法。

HanSP.Moravec(1977)提出利用灰度方差提取特征点,即利用“兴趣算子”来提取特征点,这是较早的基于图像灰度信息进行特征点检测的方法。

C.Harris和M.J.Stephens(1988)在H.Moravec算法的基础上发展出一种通过自相关矩阵的角点提取算法——Harris角点提取算法。

Forstner (1987,1994)算子通过计算各像素的Robert梯度和像素(c,r)为中心的一个窗口的灰度协方差矩阵,在影像中寻找具有尽可能小的接近圆的误差椭圆的点作为特征点[2]。

SUSAN算子(1997)和MIC算子(1998)则是利用像素邻域内一个圆形模板的灰度计算出每个像素的角点响应函数CRF (Corner Response Funtion),通过与阈值进行比较来确定是否为特征点,该类方法具有较强的抗噪能力[3]。

除了以上几种,还有Kitchen-Rosenfeld、IPAN、CSS等多种常见的点特征提取算法。

Moravec算子特征提取

Moravec算子特征提取

点特征提取编程实习报告一.实习简介本次实习利用VC++6.0编程实现了对8位BMP灰度图像的读取、显示,并用Moravec算子对图像进行点特征的提取。

二.程序设计1.用MFC创建一个多文档程序框架,用来显示BMP图像:2.为该程序框架添加菜单:3.创建一个对话框输入参数:4.最后提取结果可以显示在视图中:三.程序框图及核心代码Array分别定义四个函数计算四个方向的灰度差平方和:提取特征点:四.实验结果分析1、下图中阈值为8000,窗口大小从上到下从左到右分别为9*9、7*7、5*5、3*3。

可以看出随着窗口的增大,提取到的特征点个数越来越少,但是精度提高,可以防止将噪声提取出来。

2、下图中窗口大小为9,阈值从左到右从上到下分别为20000、15000、10000、5000。

可以看出,随着阈值的增大,能投提取到的特征点越来越少,只有灰度变化十分剧烈的点才能被提取出来,如下图中左上角是阈值为20000时的提取结果,可以发现没有提取出任何特征点。

五.实习总结Moravec 算子是点特征提取算子中的经典算子之一,它具有计算量小, 不丢失灰度信息等优点。

用该算子提取特征点时阈值的选取直接影响着提取结果。

如本次实习过程中所用的图像是武汉地区的TM影像,这幅影像的灰度范围很小,所以阈值不宜取得过大,否则会丢失很多特征点,如:当阈值选为20000时,没有提取出任何特征点。

为了验证对比度对特征点提取的影响,我用Photoshop对图像做了一个对比度的增强,之后用5*5的窗口和10000的阈值对其进行特征点的提取并与原图像的提取结果做了对比,发现增强了对比度的图像中提取出的特征点确实比原图像中的特征点多,如下图:所以,虽然Moravec算子是点特征提取的经典算子,但是提取效果还是很大程度上受参数设置的影响,不同灰度范围的图像需要不同的阈值以及不同的窗口大小,这需要长久的实验来积累经验确定参数。

或者可以通过计算整幅图像的灰度均值的方法是程序自动确定阈值,但没有再本次实习中进行实验。

摄影测量特征点提取与匹配技术研究

摄影测量特征点提取与匹配技术研究

摄影测量特征点提取与匹配技术研究作者:于岱峰李良良周广勇来源:《电脑知识与技术·学术交流》2008年第12期摘要:本文重点研究了特征点提取与匹配相关理论及技术。

制定了仿真实验方案,通过Matlab 编制程序,分析了使用Moravec 算子进行特征点提取的特点并证明了基于灰度的匹配算法的有效性。

关键词:数字摄影测量;特征点提取;特征点匹配中图分类号:P231文献标识码:A文章编号:1009-3044(2008)12-2pppp-0cResearch on Technology of Feature Point Extraction and Matching of PhotogrammetryYU Dai-feng,LI Liang-liang,ZHOU Guang-yong(School of Geodesy and Geomatics,Wuhan University,Wuhan 430072,China)Abstract:This paper pivotly study the feature points extraction and matching related theories and techniques.Draw up an experiment project,and draw up procedure through Matlab.Verify the characteristic of feature points extraction Morvec and prove the usefulness of epipolar constraint related theories.Key words:Photogrammetry;Feature points extraction;Feature points matching1 引言在现代化的测绘技术中,摄影测量系统成为一种吸引众多领域日益关注和采用的几何信息分析提取和模型制作的有力工具。

遥感提取特征点

遥感提取特征点

遥感影像特征点提取基于Moravec 算子的特征点提取1. Moravec 算子的原理及算法公式该算子是通过逐像元量测与其邻元的灰度差, 搜索相邻像元之间具有高反差的点,具体方法有以下几种。

(1) 计算各像元的有利值, 如图所示,在5X 5的窗口内沿着图示四个方向分别计算相 邻像元间灰度差之平方和 V i , V 2, V 3,及V 4,取其中最小值作为该像元的有利值:IV min 二 miV i = '(G i,j -Gi i,j )iV2八(G i,j —G i,j i )2i2V 3八(G i,j - G i .i,j 1) iV4=為(G i,j -G i .i,j-i )2ii = m -k, ,m k —i;j =n -k, , n k -i; k =W / 2。

G i ,j 代表像元R ,j 的灰度值,W 为以像元计的窗口大小,如图所示,W = 5, m, n 为像元在整块影像中位置序号。

(2) 给定一个阈值,确定待定点的有利点。

如果有利值大于给定的阈值,则将该像元 作为候选点。

阈值一般为经验值。

(3) 抑制局部非最大。

在一定大小窗口内(例如 5X 5, 7X 7, ,9X 9像元等),将上 一步所选的候选点与其周围的候选点比较, 若该像元的有利非窗口中最大值, 则去掉;否则,该像元被确定为特征点, 这一步的目的在于避免纹理丰富的区域产生束点,用于抑制局部非最大的窗口大小取决于所需的有利点密度。

综上所述,Moravec 算子是在四个主要方向上选择具有最大一最小灰度方差的点作为特 征点。

2.基于MATLAB 的算法编程clear all;close all;clcimg=double(imread('1001.jpg'));[h w]=size(img); imshow(img,[]) img n=zeros(h,w); n=4;for y=1+ n:h-n for x=1+ n:w-nsq=img(y _n:y+n,x_n:x+n); V=zeros(1,4);其中:式中,for i=2:2*n+1 %垂直,水平,对角,反对角四个万向领域灰度差的平万和V(1)=V(1)+(sq(i, n+1)-sq(i-1,门+1))人2; V(2)=V(2)+(sq( n+1,i)-sq( n+1,i-1))A 2; W3)=V(3)+(sq(i,i)-sq(i-1,i-1))A2;V(4)=V(4)+(sq(i,(2* n+1)-(i-1))-sq(i-1,(2* n+1)-(i-2)))A2; end pix=mi n(V); %四个方向中选最小值img n(y,x)=pix; end endT=mea n( img n(:)); %设阈值,小于均值置零in d=fi nd(img n< T); img n(i nd)=0; for y=1+ n:h-n%选局部最大且非零值作为特征点 for x=1+ n:w-nsq=img n(y-n:y+ n,x- n:x+ n);if max(sq(:))==imgn(y,x) && imgn(y,x)~=0img(y,x)=255; end end end figure;imshow(img,[]);3・运行结果1001特征点1002特征点J J-* - J-J/M-ll I-* / *4-*v: ¥-?<■■#0/-l l3h :f *>|孑匚JHarris 角点检测算子1算法公式(1)Harris 算子用高斯函数代替二值窗口函数,对离中心点越近的像素赋予越大的权 重,以减少噪声影响。

特征提取

特征提取
2015年6月12日星期五
21
特征提取 –点特征提取算子
Förstner算子 (5) 选取极值点。
3)给定阈值Tq,若限制误差椭圆长短半轴之比不得大于3.2 - 2.4,则可求得Tq =0.32 – 0.5 若qc,r > Tq,则该像素为一备选点,按以下原则确定其权:
4)以权值为依据,选取一适当窗口中的极值点为特征点,即选 取窗口中权最大者为权值点。
2015年6月12日星期五
5
特征提取 – 影像信息量与特征
比特分割
比特分割是一种简单的方法。由于在影像数字化时,像元灰 度量化为256个灰度等级,即8个比特,比特分割就是用于确定 哪几位比特是信号,哪几位是噪声。 具体:比特分割就是将量化后的数据分成不同的比特位,依 次取出某一比特位上的值(0或1)形成二值图像。
2015年6月12日星期五
11
特征提取
影像信息量与特征
点特征提取算子
线特征提取算子
影像分割
定位算子
2015年6月12日星期五
12
特征提取 –点特征提取算子
点特征主要指明显点,如角点、圆点等。提取点特征的算子 称为兴趣算子(interest operator),即运用某种算法从影像中 提取我们所感兴趣的,即有利于某种目的的点。现在已提出了 一系列算法各异,且具有不同特色的兴趣算子,比较知名的有 Moravec算子、 Förstner算子与 Harris算子等。
若不考虑噪声,点特征与边缘特征的灰度分布均表现为从 小到大或从大到小的明显变化。
2015年6月12日星期五
10
特征提取 – 影像信息量与特征
特征
除了用局部信息量来检测特征之外,还可以利用各种梯度 或差分算子提取特征,其原理是对各个像素的邻域即窗口进 行一定的梯度或差分运算,选择其极值点(极大或极小)或超 过给定阈值的点作为特征点。

Moravec算子提取特征点

Moravec算子提取特征点

using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Drawing.Imaging;namespace 课程作业3_bk20113268{public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary>/// 打开图像/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){//设置文件的类型openFileDialog1.Filter ="*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf";if (openFileDialog1.ShowDialog() == DialogResult.OK) //打开文件对话框{//根据文件的路径创建Image对象Image myImage =System.Drawing.Image.FromFile(openFileDialog1.FileName);pictureBox1.Image = myImage; //显示打开的图片pictureBox1.Height = myImage.Height;pictureBox1.Width = myImage.Width;this.button2.Enabled = true;}}/// <summary>/// 为数据表表头添加行号/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e){try{//添加行号SolidBrush v_SolidBrush = newSolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor);int v_LineNo = 0;v_LineNo = e.RowIndex + 1;string v_Line = v_LineNo.ToString();e.Graphics.DrawString(v_Line, e.InheritedRowStyle.Font,v_SolidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5);}catch (Exception ex){MessageBox.Show("添加行号时发生错误,错误信息:" + ex.Message, "操作失败");}}/// <summary>/// 提取特征点/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){Image myImage =System.Drawing.Image.FromFile(openFileDialog1.FileName);pictureBox1.Image = myImage;//显示打开的图片toolStripProgressBar1.Visible = true; //进度条可视toolStripProgressBar1.Maximum = 7; //设置进度条最大长度值toolStripProgressBar1.Value = 0; //设置进度条当前值toolStripProgressBar1.Step = 1; //设置进度条步长toolStripProgressBar1.Value += toolStripProgressBar1.Step; //进度条前进int Var_H = pictureBox1.Image.Height; //获取图象的高度int Var_W = pictureBox1.Image.Width; //获取图象的宽度Bitmap Var_bmp = (Bitmap)pictureBox1.Image; //根据图象的大小创建Bitmap对象double[,] huiduzhi = new double[Var_W, Var_H]; //用于存储各点灰度值for (int i = 0; i < Var_W; i++){for (int j = 0; j < Var_H; j++){Color tem_color = Var_bmp.GetPixel(i, j); //获取当前像素的颜色值huiduzhi[i, j] = tem_color.R * 0.299 + tem_color.G * 0.587 +tem_color.B * 0.114; //各点灰度值}}toolStripProgressBar1.Value += toolStripProgressBar1.Step;double[,] xingquzhi = new double[Var_W, Var_H]; //用于存储各点兴趣值for (int i = 2; i < Var_W - 2; i++){for (int j = 2; j < Var_H - 2; j++){double V1 = 0;for (int m = 0; m < 4; m++){V1 = V1 + Math.Pow(huiduzhi[i - 2 + m, j] - huiduzhi[i -1 + m, j], 2); //计算V1方向相邻像素灰度差平方和}double V2 = 0;for (int m = 0; m < 4; m++){V2 = V2 + Math.Pow(huiduzhi[i - 2 + m, j - 2 + m] - huiduzhi[i- 1 + m, j - 1 + m], 2); //计算V2方向相邻像素灰度差平方和}double V3 = 0;for (int m = 0; m < 4; m++){V3 = V3 + Math.Pow(huiduzhi[i, j - 2 + m] - huiduzhi[i, j- 1 + m], 2); //计算V3方向相邻像素灰度差平方和}double V4 = 0;for (int m = 0; m < 4; m++){V4 = V4 + Math.Pow(huiduzhi[i - 2 + m, j + 2 - m] - huiduzhi[i- 1 + m, j + 1 - m], 2); //计算V4方向相邻像素灰度差平方和}xingquzhi[i, j] = Math.Min(Math.Min(Math.Min(V1, V2), V3), V4);//从V1、V2、V3、V4中取最小值作为该点兴趣值}}toolStripProgressBar1.Value += toolStripProgressBar1.Step;double sum=0;for (int i = 0; i < Var_W; i++){for (int j = 0; j < Var_H; j++){sum+=xingquzhi[i,j];}}double pingjunzhi = sum / (Var_W * Var_H);toolStripProgressBar1.Value += toolStripProgressBar1.Step;int houxuan = 0; //统计候选特征点数目int c = 101; //获取准确特征点数目double zeng = 4;while ( c > 100){c = 0;double yuzhi = pingjunzhi * zeng; //设定阈值double[,] jianding = new double[Var_W, Var_H];for (int i = 0; i < Var_W; i++){for (int j = 0; j < Var_H; j++){if (xingquzhi[i, j] <= yuzhi){jianding[i, j] = 0; //选取兴趣值大于阈值的点作为特征候选点,其他点兴趣值归零}else{jianding[i, j] = 1;houxuan++;}}}int[,] tezhengzhi1 = new int[houxuan, 2]; //假定一个数组能容纳所有点皆为特征点的像素坐标矩阵int yuzhimuban = 5; //定义阈值模板int mubanbanchuang = 2;for (int i = mubanbanchuang; i < Var_W - mubanbanchuang; i = i + yuzhimuban){for (int j = mubanbanchuang; j < Var_H - mubanbanchuang; j = j + yuzhimuban){double MAX = 0; //假定5*5模板最大值起始值为第一个元素值int a = 0; //设a为最大值行int b = 0; //设b为最大值列for (int m = 0; m < yuzhimuban; m++){for (int n = 0; n < yuzhimuban; n++){if (jianding[i - mubanbanchuang + m, j - mubanbanchuang + n] == 1){if (MAX < xingquzhi[i - mubanbanchuang + m, j- mubanbanchuang + n]){MAX = xingquzhi[i - mubanbanchuang + m, j- mubanbanchuang + n]; //获取5*5模板中最大值a = i - mubanbanchuang + m; //获取最大值列b = j - mubanbanchuang + n; //获取最大值行}}else{a = 0;b = 0;}}}if ((a != 0) && (b != 0)){tezhengzhi1[c, 0] = a; //存储特征点列tezhengzhi1[c, 1] = b; //存储特征点行c++; //每有一个既不为0也不重复的最大值特征点数目加一}}}tezhengzhi = tezhengzhi1;zeng += 1;}toolStripProgressBar1.Value += toolStripProgressBar1.Step;toolStripProgressBar1.Value += toolStripProgressBar1.Step;int[,] tezhengdian2 = new int[c, 2]; //定义一个数组存储像素坐标for (int i = 0; i < c; i++){for (int j = 0; j < 2; j++){tezhengdian2[i, j] = tezhengzhi[i,j];}}tezheng = tezhengdian2;Image img = pictureBox1.Image; //将pictureBox1中图像存储入另一个变量Bitmap bmp = new Bitmap(img.Width, img.Height); //创建Bitmap对象Graphics g = Graphics.FromImage(bmp); //创建Graphics对象g.InterpolationMode =System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; //设置高质量双三次插值法g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //设置高质量,低速度呈现平滑程度positingQuality =positingQuality.HighQuality; //设置绘制到此 Graphics 的合成图像的呈现质量g.DrawImage(img, 0, 0, img.Width, img.Height); //以img为原本重新于(0,0)点绘制g.Dispose(); //释放资源for (int i = 0; i < c; i++){Graphics myGraphics = Graphics.FromImage(bmp); //创建Graphics对象myGraphics.DrawLine(new Pen(Color.Red, 1), newPoint(tezhengdian2[i, 0], tezhengdian2[i, 1] - 5), new Point(tezhengdian2[i, 0],tezhengdian2[i, 1] + 5)); //画出竖直方向直线myGraphics.DrawLine(new Pen(Color.Red, 1), newPoint(tezhengdian2[i, 0] - 5, tezhengdian2[i, 1]), new Point(tezhengdian2[i, 0] +5, tezhengdian2[i, 1])); //画出水平方向直线myGraphics.Dispose(); //释放资源pictureBox1.Image = bmp; //显示含有“+”的图}toolStripProgressBar1.Value += toolStripProgressBar1.Step;//新建一个datatable用于保存读入的数据DataTable dt = new DataTable();//给datatable添加二个列dt.Columns.Add("列", typeof(String));dt.Columns.Add("行", typeof(String));for (int i = 0; i < c; i++){DataRow dr = dt.NewRow();dr[0] = tezhengdian2[i, 0]; //将列数据赋给表dr[1] = tezhengdian2[i, 1]; //将行数据赋给表dt.Rows.Add(dr); //将这行数据加入到datatable中}this.dataGridView1.DataSource = dt; //将datatable 绑定到datagridview上显示结果dataGridView1.AllowUserToAddRows = false;groupBox1.Text = "特征点像素坐标" + "(" + c.ToString() + "个" + ")"; toolStripProgressBar1.Visible = false; //隐藏进度条MessageBox.Show("共有" + c.ToString() + "个特征点!");}}}。

第三章 数字影像的特征提取与定位(2)

第三章 数字影像的特征提取与定位(2)

通常将上式乘以-1,则拉普拉斯算子即成为原灰度函数 与矩阵(称卷积核或掩膜)
0 1 0 1 4 1 0 1 0
的卷积。然后取其
符号变化的点,既通过零的点为边缘点。
华北水利水电学院资源与环境学院测量教研室
0 1 0
1 4 1
0 1 0
对于数字影像,差分代替偏导数,则拉普拉斯算子 定义为 : 2 g ij ( g i 1, j g i , j ) ( g i , j g i 1, j )
( g i , j 1 g i , j ) ( g i , j g i , j 1 ) g i 1 , j g i 1 , j g i , j 1 g i , j 1 4 g i , j
(2)G[g(x,y)]的模为
G ( x , y ) mag [ G ] [( g x ) (
2
g y
1
) ]2
2
就等于最大增加率。
华北水利水电学院资源与环境学院测量教研室
卷积核(模板) i +1 -1 j +1 -1
(一)梯度算子 在数字影像中,导数的计算通常用差分予以近 似,则梯度算子即差分算子为:
华北水利水电学院资源与环境学院测量教研室
(一)方向二阶差分算子 需要在纵横方向同时检测时的算子为:
D 1 2 1 1 2 1 0 1 0 1 4 1 0 1 0
g i, j
g ij [ 1
此时二阶差分算子为 : 1 2 1 相应于纵向与两个对角方向的二阶差分算子为 :
1 2 1

Susan、Harris和Moravec三大点特征提取算法的比较及利用点特征提取算法对建筑物角点的提取实习报告

Susan、Harris和Moravec三大点特征提取算法的比较及利用点特征提取算法对建筑物角点的提取实习报告
same++;//若满足,则USAN区域增加 if(same<15) pGray[i*width+j]=255;//若USAN区域的面积 小于给定的阈值g,则中心点具有典型特征 else pGray[i*width+j]=0;
2. Moravec算法 Moravec算子是一种基于灰度的特征点获取方法,
1.1 问题的提出
图像的特征点是什么? 如何提取图像的特征点? 图像的点特征提取算法有什么应用?
1.2 本报告研究的意义
本 报 告 对 于 点 特 征 提 取 的 算 法 中 Susan 算 法 、 Harris算法、Moravec算法进行相关介绍,然后对三 种算法对于角点提取进行比较。同时改进Susan算子 的模板为可变大小并进行了代码的实现,利用不同模 板大小对角点进行提取,以比较不同模板大小对于点 特征提取效果。最后将点特征提取算法应用于对建筑 物的提取已经对建筑物提取的改进。意在提出更好的 算法对建筑物的角点进行提取
当圆形模板完全处在背景或目标中时,USAN 区 域面积最大;当模板移向目标边缘时,USAN 区域逐 渐变小;当模板中心处于边缘时,USAN 区域很小; 当模板中心处于角点时,USAN 区域最小。如图 1。
因此,可以通过计算每 1 个像素的 USAN 值,
并与设定的门限值进行比较, 如果该像素的 USAN 值
在 点 特 征 提 取 的 算 法 中 , 主 要 包 含 了 Susan 算 法、Harris算法和Moravec算法,这些算法可以对图像 中角点进行提取,从而应用于实践生产中,例如对建 筑物角点提取,人脸中眼睛部位角点的提取。下面介 绍三种算法具体的内容和实现重要代码。
2.1 SUSAN算法
1. Susan算法 SUSAN ( Small univalue segment assimilating

点特征提取(DOC)

点特征提取(DOC)
五、提取点特征的原理与过程
(一) Moravec算子提取过程
a.读取灰度影像,得到影像的灰度矩阵;
b.计算各像元的兴趣值IV:
c.给定一经验阈值,将兴趣值( )大于阈值的点作为候选点;
d.选取候选点中的极值点作为特征点;
e.将特征点在原始图像上进行标记、展示。
(二) Forstner算子提取过程
a.计算各像素的Robert’s梯度;
%¼ÆËã135¶ÈбÏß·½ÏòÏàÁÚÏñËػҶȲîµÄƽ·½ºÍ
v2=v2+(I(i+mh+k,j+mw+k)-I(i+mh+k+1,j+mw+k+1))^2;
%¼ÆËãºáÏàÁÚÏñËػҶȲîµÄƽ·½ºÍ
v3=v3+(I(i+mh,j+mw+k)-I(i+mh,j+mw+k+1))^2;
b.计算ll(如55或更大)窗口中灰度的协方差矩阵;
其中:
c.计算兴趣值q与w;
式中:DetN代表矩阵N之行列式,trN代表矩阵N之迹。
d.确定待选点;
当 同时 ,该像元为待选点。
e.选取极值点。
即在一个适当窗口中选择最大的待选点。
f.将特征点在原始图像上进行标记、展示。
(三)程序源代码(Moravec):
六、模拟实践成果
图二原始灰度影像

图三Moravec算子程序运行结果
图四Forstner程序运行结果
七.心得体会
康仲林:本次模拟实践,我们通过操作了解了用程序通过两种算子提取特征点的具体方法,进一步加深了对两种算子的认识,为以后的学习打下了更好的基础。同时,加强了自己的动手能力,将实践和理论联系起来,真正的做到了学与做的统一,更加利于知识的掌握。这次实验通过程序运行,得到经两种点特征提取的图片,从照片中可以清晰对比不同。总之,此次实验比较顺利。

matlab练习程序(Moravec算子)

matlab练习程序(Moravec算子)

matlab练习程序(Moravec算⼦)这个算⼦算是图像历史上第⼀个特征点提取算法了,1977年提出的,很简单,拿来练⼿很合适。

算法原理如下:1.选取⼀个合理的邻域遍历图像,这⾥是5*5邻域的。

在邻域中依次计算,垂直,⽔平,对⾓与反对⾓四个相邻像素灰度的差的平⽅和,作为该邻域特征值。

⼤致就是下⾯这个样⼦:公式:这⾥k是窗⼝的半径。

2.从四个特征值中选最⼩的值作为该像素初次候选特征值。

公式:3.设定⼀个阈值,将⼤于该阈值初次候选特征值的选为⼆次候选特征值。

4.设定⼀个邻域,将该邻域最⼤的⼆次候选特征值作为最终要选择的特征值。

原图:处理后:matlab代码如下:clear all;close all;clcimg=double(imread('lena.jpg'));[h w]=size(img);imshow(img,[])imgn=zeros(h,w);n=4;for y=1+n:h-nfor x=1+n:w-nsq=img(y-n:y+n,x-n:x+n);V=zeros(1,4);for i=2:2*n+1 %垂直,⽔平,对⾓,反对⾓四个⽅向领域灰度差的平⽅和V(1)=V(1)+(sq(i,n+1)-sq(i-1,n+1))^2;V(2)=V(2)+(sq(n+1,i)-sq(n+1,i-1))^2;V(3)=V(3)+(sq(i,i)-sq(i-1,i-1))^2;V(4)=V(4)+(sq(i,(2*n+1)-(i-1))-sq(i-1,(2*n+1)-(i-2)))^2;endpix=min(V); %四个⽅向中选最⼩值imgn(y,x)=pix;endendT=mean(imgn(:)); %设阈值,⼩于均值置零ind=find(imgn<T);imgn(ind)=0;for y=1+n:h-n %选局部最⼤且⾮零值作为特征点for x=1+n:w-nsq=imgn(y-n:y+n,x-n:x+n);if max(sq(:))==imgn(y,x) && imgn(y,x)~=0img(y,x)=255;endendendfigure;imshow(img,[]);算法整个过程还是很简单的,练习⼀下,顺便祭下这个特征值开⼭算法。

利用Moravec算子提取特征点实现过程分析

利用Moravec算子提取特征点实现过程分析
图 2 灰度图像特征提取效果图
5 结束语
Moravec 算子是点特征提取算子中的经典算子之一 , 后 来 的 很多点特征提取算子都是在它的基础上改进得来的, 掌握 Moravec 算子的原理和实现方法对理解其他的点特征算子的 理 解 和应用有很大好处。
参考文献: [1]张祖勋,张剑清. 数字摄影测量学[M].武汉:武汉测绘科技大 学 出 版 社 ,1997. [2]吕言.用于提取数字图像点特征 之 有 利 算 子 研 究[J].测 绘 学 报,1989,18(3):175- 182. [3]SHEN F,WANG H. Real Time Gray Level Corner Detector [J].Pattern Recognition Letters,2002,23(8). 第三步、创建一个与 Excel 数据相对应的表。编辑控制文件, 控制文件取名为 department.ctl, 格式如下:
V4+=(lpDIB1[(i+i1)*wide+j- i1]- lpDIB1[(i+i1+1)*wide+j- i1- 1]) _*(lpDIB1[(i+i1)*wide+j- i1]- lpDIB1[(i+i1+1)*wide+j- i1- 1]);// 135 度方向灰度差
收稿日期: 2006- 03- 22 作者简介: 王舒鹏( 1984- ) , 男, 内蒙古省包头市人, 研究方向: 摄影测量与遥感; 方莉( 1985- ) , 女, 湖北省黄冈市人, 研究方向: 摄影测量与遥感。
4 基于 Mora ve c 算子的点特征提取效果图
设定阈值为 300, 影像窗口 5*5, 抑制局部非最大窗口 9*9, 得
到以下灰度图像效果图( 图 2) :
(上接第 26 页) 是将数据由分割符号进行分割, 一个分割符中的数据存储于一个

一种改进型Moravec算子

一种改进型Moravec算子

一种改进型Moravec算子【摘要】 moravec算子在提取角点的时候会同时将很多边缘点也同时提取出来,而且阈值的选取较为繁琐。

通过对moravec算子原理和缺陷的研究,本文提出了利用四个方向相邻像素灰度差平方和的最小值、最大值、总和三个参数和选取3x3窗口来进行边缘点和角点周围点的剔除的新算法。

实验结果证明,该算法能够完全剔除边缘点和角点周围点。

本文还对角点提取中存在的各种情况进行了详细的分析。

【关键词】 moravec算子改进算法角点边缘点周围点1 引言moravec算子是moravec h p于1977年提出的一种“抑制局部非最大”的点特征提取算子。

由于其具有计算简单、提取速度快的优点,因此在摄影测量中广泛的应用于提取航空影像上特征点,进而基于特征点完成影像匹配。

然而moravee算子在提取角点的时候一般存在两个问题:一、边缘上的点也会被提取出来;二、提取出的角点周围存在许多干扰点。

针对moravee算子中存在的不足之处,这里提出一种改进moravec算子的新思路。

2 moravec算子原理moravec算子是利用梯度和差分算子进行点特征提取的算子。

有以下几个步骤。

(1)计算各像元的兴趣值iv(interest value)。

在以像素(c,r)为中心的w*w影像窗口中(如5×5的窗口),计算0°、45°、90°、135°四个方向相邻像素灰度差的平方和:v1、v2、v3、v4,取其中最小者作为该像素(c,r)的兴趣值:ivc,r=min{v1,v2,v3,v4}(2)给定一经验值,将兴趣值大于该阈值的点(即兴趣值计算窗口的中心点)作为候选点。

(3)选取候选点中的极值点作为特征点。

在一定大小的窗口内,将候选点中兴趣值不是最大者均去掉,仅留下一个兴趣值最大者,该像素即为一个特征点。

3 moravec算子的缺陷及分析(1)当边缘角度不为0°、45°、90°、135°时不能有效区分边缘点和角点。

数字摄影测量学习题总结

数字摄影测量学习题总结

1、模拟影像的数字化主要由(采样)与(量化)两个过程来完成。

2、在对影像分辨率为25lps/mm的像片进行数字化时,最佳的采样间隔应为()微米。

3、在实际构建金字塔影像时,一般采用()或()个像元求平均,但最常用的是()个像元求平均。

4、数字摄影测量将影像特征分为(点特征)、(线特征)和(面特征)。

5、Laplace算子是一()滤波器,因此对影像()非常敏感。

6、基于灰度的影像匹配的相似性测度主要有()、()、()、()、()。

7、数字摄影测量系统的硬件主要由()、()和()等组成。

手轮、脚盘、脚踏、接口盒、立体发生器和立体眼镜8、最小二乘匹配同时考虑了(局部影像的灰度畸变和几何畸变),因此有很高的匹配精度。

1、数字摄影测量和摄影测量有什么联系和区别?2、DEM有哪几种主要的形式,其优缺点各是什么?(6分)3、什么是影像匹配?基于灰度的影像匹配的基本过程如何?(6分)影像匹配是在两幅(或多幅)影像之间识别同名元素(点)的过程,它是计算机视觉及数字摄影测量的核心问题。

4、什么是点特征提取算子?主要点特征提取算子有哪些?(6分)点特征提取算子是指运用某种算法使图像中独立像点更为突出的算子,它又被称为兴趣算子或有利算子,主要用于提取我们感兴趣的点(如角点、圆点等)。

Moravec 算子 Harris 算子 Forstner 算子 SUSAN 算子5、DEM 在测绘中有哪些应用?(6分)绘制等高线、坡度、坡向图、立体透视图、制作正射影像图、立体景观图、立体匹配片、立体地形模型、地图的修侧。

1、试述直接法和间接法数字微分纠正的特点及间接法纠正的主要过程。

(10分2试述“灰度差的平方和最小”影像匹配和“最小二乘”影像匹配的相同点和不同点。

3、填写下图所示的屏幕检索表(10分)1、什么是数字摄影测量?定义一:基于数字影像与摄影测量的基本原理,应用计算机技术、数字影像处理、影像匹配、模式识别等多学科的理论与方法,提取所摄对象用数字方式表达的几何与物理信息的摄影测量的分支学科。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。

如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。

㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。

(2 列出开发利用方案编制所依据的主要基础性资料的名称。

如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。

对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。

二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。

2、国内近、远期的需求量及主要销向预测。

㈡产品价格分析
1、国内矿产品价格现状。

2、矿产品价格稳定性及变化趋势。

三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。

2、矿区矿产资源概况。

3、该设计与矿区总体开发的关系。

㈡该设计项目的资源概况
1、矿床地质及构造特征。

2、矿床开采技术条件及水文地质条件。

相关文档
最新文档