Harris角点检测原理及实现
一、原理
二、实现
close all;
clear all;
I=imread('test.tif');
[posX,posY]=harris(I);
figure;imshow(I);
hold on; plot(posX, posY, 'g*');
function [posX,posY]=harris(I)
%Harris角点检测
%I:输入图像
%posX:角点X坐标
%posY:角点Y坐标
I=double(I);
[m,n]=size(I);
hx=[-,,;-,,;-,,];
Ix=imfilter(I,hx,'replicate','same');%X方向差分图像
Iy=imfilter(I,hx','replicate','same');%Y方向差分图像
Ix2=Ix.^;
Iy2=Iy.^;
Ixy=Ix.*Iy;
h=fspecial('gaussian',,);
Ix2=imfilter(Ix2,h,'replicate','same');%高斯滤波
Iy2=imfilter(Iy2,h,'replicate','same');
Ixy=imfilter(Ixy,h,'replicate','same');
R=zeros(m,n);
k=0.04;%建议值(0.04--0.06)
for i=:m
for j=:n
R(i,j)=(Ix2(i,j)*Iy2(i,j)-Ixy(i,j)*Ixy(i,j))-k*((Ix2(i,j)+Iy2(i,j))^);%角点响应值
end
end
T=0.1*max(R(:));% 阈值,可控制返回的角点个数
result=zeros(m,n);
%非极大值抑制(*3窗口中大于阈值T的局部极大值点被认为是角点)
for i=:m-
for j=:n-
tmp=R(i-:i+,j-:j+);
tmp(,)=;
if(R(i,j)>T&&R(i,j)>max(tmp(:)))
result(i,j)=;
end
end
end
[posY,posX]=find(result);
结果:
Harris角点检测原理及实现的更多相关文章
- 第十一节、Harris角点检测原理(附源码)
OpenCV可以检测图像的主要特征,然后提取这些特征.使其成为图像描述符,这类似于人的眼睛和大脑.这些图像特征可作为图像搜索的数据库.此外,人们可以利用这些关键点将图像拼接起来,组成一个更大的图像,比 ...
- Harris角点检测原理详解
http://blog.csdn.net/lwzkiller/article/details/54633670 关于角点的应用在图像处理上比较广泛,如图像匹配(FPM特征点匹配).相机标定等.网上也有 ...
- Harris角点检测原理分析
看到一篇从数学意义上讲解Harris角点检测很透彻的文章,转载自:http://blog.csdn.net/newthinker_wei/article/details/45603583 主要参考了: ...
- OpenCV-Python:Harris角点检测与Shi-Tomasi角点检测
一.Harris角点检测 原理: 角点特性:向任何方向移动变换都很大. Chris_Harris 和 Mike_Stephens 早在 1988 年的文章<A CombinedCorner an ...
- OpenCV计算机视觉学习(13)——图像特征点检测(Harris角点检测,sift算法)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 前言 ...
- Harris角点检测算原理
主要参考了:http://blog.csdn.net/yudingjun0611/article/details/7991601 Harris角点检测算子 本文将该文拷贝了过来,并做了一些数学方面的 ...
- Harris角点检测算法优化
Harris角点检测算法优化 一.综述 用 Harris 算法进行检测,有三点不足:(1 )该算法不具有尺度不变性:(2 )该算法提取的角点是像素级的:(3 )该算法检测时间不是很令人满意. 基于以上 ...
- cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
参考文献----------OpenCV-Python-Toturial-中文版.pdf 参考博客----------http://www.bubuko.com/infodetail-2498014. ...
- Opencv学习笔记------Harris角点检测
image算法测试iteratoralgorithmfeatures 原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/73 ...
随机推荐
- 基于HTML5 Canvas和jQuery 的绘图工具的实现
简单介绍 HTML5 提供了强大的Canvas元素.使用Canvas并结合Javascript 能够实现一些很强大的功能.本文就介绍一下基于HTML5 Canvas 的绘图工具的实现.废话少说,先看成 ...
- mongo-spark 安装排故 ./sbt check
[error] at com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:) [error] at com.mong ...
- 通达OA二次开发 工作流表单中关联查询另外一个工作流方法(源代码)
一个工作流表单中,怎样方便的查询相关的工作流表单内容.重复打开各个菜单必定须要造成多次点击浪费时间,切换也会带来思路的中断.这里通过js代码的方式把这个问题进行了解决. <style>&l ...
- AIM Tech Round (Div. 2) C. Graph and String
C. Graph and String time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- kbmMW实现sql查询(图文并茂)
kbmMW对于Delphi来说,是最好的多层框架,没有之一,无论是效率.稳定及架构都让人无可挑剔,尤其自Delphi支持跨平台开发以来,随着Delphi支持ios及Android移动开发,KbmMW也 ...
- [Android6.0][RK3399] 修改默认按键 KEY-PAD 的功能【转】
本文转载自:http://m.blog.csdn.net/dearsq/article/details/70175637 Platform: RK3399 OS: Android 6.0 Kernel ...
- Lesson one of python
Test1:Use the powershell to output the contents print "Hello World!" print "Hello Aga ...
- java android 将 List中元素互换位置
很多时候我要对List中的元素调换位置,这时候可以用如下代码,意思是将data中的index1与index2元素互换位置 //data 为List Collections.swap(data,inde ...
- Android零碎知识点,之后会一直更新的哦!
view的getCompoundDrawables()方法,调用这个方法返回的是控件的左上右下四个位置的Drawable,并且返回的类型是数据 setBounds(x,y,width,height); ...
- codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
题目链接: C. Mashmokh and Reverse Operation time limit per test 4 seconds memory limit per test 512 mega ...