function varargout=harris(I,k,q,h)
narginchk(0,4);
nargoutchk(0,2);
if nargin<1
I=checkerboard(50,2,2);
end
if nargin<2
k=0.04;
end
if nargin<3
q=0.01;
end
if nargin<3
h=fspecial('gaussian',[5 5],1.5);
end
fx=[-2,-1,0,1,2];
Ix=filter2(fx,I);
fy=[-2,-1,0,1,2]';
Iy=filter2(fy,I);
Ix2=filter2(h,Ix.^2);
Iy2=filter2(h,Iy.^2);
Ixy=filter2(h,Ix.*Iy);
rfcn=@(a,b,c)(a*b-c^2)-k*(a+b)^2;
R=arrayfun(rfcn,Ix2,Iy2,Ixy);
R(R < q*max(R(:)))=0;
[xp,yp]=find(imregionalmax(R,8));
if nargout==0
subplot(121)
imshow(I);
hold on;
plot(xp,yp,'ro');
title('自己编写HARRIS算法')
subplot(122)
cp=corner(I);
imshow(I)
hold on
plot(cp(:,1),cp(:,2),'ro');
title('MATLAB自带CORNER函数')
elseif nargout==1
varargout={[xp,yp]};
elseif nargout==2
varargout={xp,yp};
end
Matlab仿真实验室
- 粉丝: 3w+
- 资源: 2408
最新资源
- GitBook 教授 Javascript 编程基础知识.zip
- Generation.org 开发的 JAVA 模块练习.zip
- FastDFS Java 客户端 SDK.zip
- etcd java 客户端.zip
- Esercizi di informatica!执行计划,metti alla prova!.zip
- Eloquent JavaScript 翻译 - 2ª edição .zip
- Eclipse Paho Java MQTT 客户端库 Paho 是一个 Eclipse IoT 项目 .zip
- disconf 的 Java 应用程序.zip
- cloud.google.com 上使用的 Java 和 Kotlin 代码示例.zip
- 未命名3(3).cpp
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈