一、原理

二、实现

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);

结果:

最新文章

  1. 【React】dva-cli建立脚手架后发现页面样式不对的问题
  2. iOS 怎么设置 UITabBarController 的第n个item为第一响应者?
  3. php json_decode
  4. Jetty与tomcat的比较
  5. 去除行内(inline/inline-block)元素之间的间距
  6. 转载:第四弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿,每日更新!
  7. css三角形的实现
  8. GreenDao官方文档翻译(下)
  9. uvalive4327(单调队列优化)
  10. RPM安装包-Spec文件參数具体解释与演示样例分析
  11. UVALive 2324 Human Gene Functions(动态规划)
  12. fuel健康检查Heat失败的原因
  13. swfit - 实现类似今日头条顶部标签和底部内容的动态解决方案
  14. 基于SwiperJs的H5/移动端下拉刷新上拉加载更多的效果
  15. mongoose一看就会的基本操作
  16. ARTS打卡计划第一周-Review
  17. 通用triggerEvent方法
  18. jquery ----> How to Create a Basic Plugin (翻译)
  19. Java中数据类型相互转化
  20. 如何HACK无线家用警报器?

热门文章

  1. subclassdlgitem
  2. 2016/07/05 zend optimizer
  3. yarn笔记
  4. iOS 开发常用的调试工具
  5. 基于Delphi7 WebService 在Apache发布及Apache使用说明
  6. SVN命令使用详解【转】
  7. HDU1569 方格取数(2) —— 二分图点带权最大独立集、最小割最大流
  8. Loadrunner11打开WebTours只显示头部解决办法
  9. WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中——浏览器里运行其他语言的程序?
  10. setTimeout的第三个参数