1. 特征点提取的意义


2.角点




3. Harris角点检測的基本原理




4.Harris角点检測算法的步骤










5.Harris角点提取算法设计

  1. <span style="font-size:18px;">function [ptx,pty] = HarrisPoints(ImgIn,threshold)
  2. % Harris角点提取算法
  3. %计算图像亮度f(x,y)在点(x,y)处的梯度-----------------------------------------
  4. fx = [5 0 -5;8 0 -8;5 0 -5]; % 高斯函数一阶微分,x方向(用于改进的Harris)
  5. %fx = [-2 -1 0 1 2]; % x方向梯度算子(用于Harris角点提取算法)
  6. Ix = filter2(fx, ImgIn); % x方向滤波
  7. fy = [5 8 5;0 0 0;-5 -8 -5]; % 高斯函数一阶微分,y方向(用于改进的Harris)
  8. %fy = [-2; -1; 0; 1; 2]; % y方向梯度算子(用于Harris角点提取算法)
  9. Iy = filter2(fy, ImgIn); % y方向滤波
  10. %构造自相关矩阵-------------------------------------------------------------
  11. Ix2 = Ix .^ 2;
  12. Iy2 = Iy .^ 2;
  13. Ixy = Ix .* Iy;
  14. clear Ix;
  15. clear Iy;
  16. h= fspecial('gaussian', [7 7], 2);% 产生7*7的高斯窗函数,sigma=2
  17. Ix2 = filter2(h,Ix2);
  18. Iy2 = filter2(h,Iy2);
  19. Ixy = filter2(h,Ixy);
  20. %提取特征点-----------------------------------------------------------------
  21. height = size(ImgIn, 1);
  22. width = size(ImgIn, 2);
  23. result = zeros(height, width);% 纪录角点位置,角点处值为1
  24. R = zeros(height, width);
  25. Rmax = 0; % 图像中最大的R值
  26. k = 0.05; %k为常系数,经验取值范围为0.04~0.06
  27. for i = 1 : height
  28. for j = 1 : width
  29. M = [Ix2(i, j) Ixy(i, j); Ixy(i, j) Iy2(i, j)];
  30. R(i,j) = det(M) - k * (trace(M)) ^ 2; % 计算R
  31. if R(i,j) > Rmax
  32. Rmax = R(i, j);
  33. end;
  34. end;
  35. end;
  36. T = threshold* Rmax;%固定阈值。当R(i, j)>T时,则被判定为候选角点
  37. %在计算完各点的值后。进行局部非极大值抑制-------------------------------------
  38. cnt = 0;
  39. for i = 2 : height-1
  40. for j = 2 : width-1
  41. % 进行非极大抑制。窗体大小3*3
  42. if (R(i,j)>T && R(i,j)>R(i-1,j-1) && R(i,j)>R(i-1,j)&&...
  43. R(i,j)>R(i-1,j+1) && R(i,j)>R(i,j-1) && R(i,j)>R(i,j+1)&&...
  44. R(i,j)>R(i+1,j-1) && R(i,j)>R(i+1,j) && R(i,j)>R(i+1,j+1) )
  45. result(i, j) = 1;
  46. cnt = cnt+1;
  47. end;
  48. end;
  49. end;
  50. i = 1;
  51. for j = 1 : height
  52. for k = 1 : width
  53. if result(j, k) == 1;
  54. corners1(i, 1) = j;
  55. corners1(i, 2) = k;
  56. i = i + 1;
  57. end;
  58. end;
  59. end;
  60. [pty, ptx] = find(result == 1); %row 行;column 列;
  61. end</span>

6.实验结果展示


7.补充阅读材料










特征点提取之Harris角点提取法的更多相关文章

  1. OpenCV计算机视觉学习(13)——图像特征点检测(Harris角点检测,sift算法)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 前言 ...

  2. 『OpenCV3』Harris角点特征_API调用及python手动实现

    一.OpenCV接口调用示意 介绍了OpenCV3中提取图像角点特征的函数: # coding=utf- import cv2 import numpy as np '''Harris算法角点特征提取 ...

  3. 图像特征与描述子(直方图, 聚类, 边缘检测, 兴趣点/关键点, Harris角点, 斑点(Blob), SIFI, 纹理特征)

    1.直方图 用于计算图片特征,表达, 使得数据具有总结性, 颜色直方图对数据空间进行量化,好比10个bin 2. 聚类 类内对象的相关性高 类间对象的相关性差 常用算法:kmeans, EM算法, m ...

  4. 特征提取算法(4)——Harris角点提取

    1.角点 1.1 特征点与角点 特征点是计算机视觉算法的基础,使用特征点来代表图像的内容. 角点是一类重要的点特征,图像分析的角度来定义: 角点可以是两个边缘的角点: 角点是邻域内具有两个主方向的特征 ...

  5. Harris角点检测原理分析

    看到一篇从数学意义上讲解Harris角点检测很透彻的文章,转载自:http://blog.csdn.net/newthinker_wei/article/details/45603583 主要参考了: ...

  6. Harris 角点检测

    一 .Motivation 对于做图像处理的人来说,Harris角点检测肯定听过,1988年发表的文章"A combined corner and edge detector"描述 ...

  7. Harris角点算法

    特征点检测广泛应用到目标匹配.目标跟踪.三维重建等应用中,在进行目标建模时会对图像进行目标特征的提取,常用的有颜色.角点.特征点.轮廓.纹理等特征.现在开始讲解常用的特征点检测,其中Harris角点检 ...

  8. Harris角点检测算原理

    主要参考了:http://blog.csdn.net/yudingjun0611/article/details/7991601  Harris角点检测算子 本文将该文拷贝了过来,并做了一些数学方面的 ...

  9. OpenCV特征点提取----Fast特征

    1.FAST(featuresfrom accelerated segment test)算法 http://blog.csdn.net/yang_xian521/article/details/74 ...

随机推荐

  1. FileChannel的深入理解

    一,官方描写叙述 一个读,写,映射,操作文件的通道. 文件通道有能够被查询和改动的一个当前位置.文件本身包括了一个可悲读写的变长字节序列,而且它的当前的size会被查询.当被写入的字节超过当前文件的大 ...

  2. 怎样从Cortex-m向STM32移植使用SPI接口协议

    /*************************************************************************************************** ...

  3. Drupal 关于节点(nodes)的理解

    在 Drupal 构建的站点中.全部的内容都是以节点形式存储的,一个节点能够是公布的不论什么一个内容,比方说一个单面(page).一个投票(Poll).一篇文章(article).论坛主题(forum ...

  4. 洛谷P3201 [HNOI2009]梦幻布丁

    题目描述 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. 输入输出格式 输入格式: 第 ...

  5. File Upload with Jersey

    package com.toic.rest; import java.io.File; import java.io.FileOutputStream; import java.io.IOExcept ...

  6. 又一次认识java(一) ---- 万物皆对象

    假设你现实中没有对象.至少你在java世界里会有茫茫多的对象,听起来是不是非常激动呢? 对象,引用,类与现实世界 现实世界里有许很多多的生物,非生物,跑的跳的飞的,过去的如今的未来的,令人眼花缭乱.我 ...

  7. Android学习笔记之按键操作

    我们如何和Android 程序来进行交互那份?来让 Android 程序产生相应的反应,我们不得不通过键盘事件.触摸事件.传感器事件等来实现. 键盘是Android中主要的输入设备,对按键的响应的处理 ...

  8. iterm恢复默认设置

    命令行执行以下命令即可: defaults delete com.googlecode.iterm2

  9. ORACLE 11G R2 DG_BROKER 之SWITCH OVER

      官网:http://docs.oracle.com/cd/B12037_01/server.101/b10822/cli.htm 这个是有必要看一下. 注意本人已经完毕一次SWITCHOVER 所 ...

  10. 策略模式 VS 桥梁模式

    这对冤家终于碰头了,策略模式与桥梁模式是如此相似,简直就是孪生兄弟,要把它们两个分开需要花费大量智力,我们来看看两者的通用类图,如图33-1所示. 图33-1 策略模式(左)和桥梁模式(右)通用类图 ...