harris角点检测算法

毕业设计要做摄像机的参数标定,角点检测是一个重要步骤。

View Code
close all;
clear all;
clc

im=imread('checkbord.png');
im=rgb2gray(im);
[m n]=size(im);

I=zeros(m+2,n+2);
Ix=zeros(m+2,n+2);
Iy=zeros(m+2,n+2);
R=zeros(m+2,n+2);
flag=zeros(m,n);

I(2:m+1,2:n+1)=im;
Ix(:,2:n)=I(:,3:n+1)-I(:,1:n-1);
Iy(2:m,:)=I(3:m+1,:)-I(1:m-1,:);
A=Ix(2:m+1,2:n+1).^2;
C=Iy(2:m+1,2:n+1).^2;
B=Ix(2:m+1,2:n+1).*Iy(2:m+1,2:n+1);

h=fspecial('gaussian',[7 7],2);
A=filter2(h,A);
B=filter2(h,B);
C=filter2(h,C);

k=0.06;
Rmax=0;
for i=1:m
    for j=1:n
        M=[A(i,j) B(i,j); B(i,j) C(i,j)];
        R(i+1,j+1)=det(M)-k*(trace(M))^2;
        if R(i+1,j+1)>Rmax
            Rmax=R(i+1,j+1);
        end
    end
end

for i=2:m+1
    for j=2:n+1
        if R(i,j)>0.01*Rmax && ...
                R(i,j)>R(i-1,j-1) && R(i,j)>R(i-1,j) && R(i,j)>R(i-1,j+1) &&...
                R(i,j)>R(i,j-1) && R(i,j)>R(i,j+1) &&...
                R(i,j)>R(i+1,j-1) && R(i,j)>R(i+1,j) && R(i,j)>R(i+1,j+1)
                flag(i-1,j-1)=1;
        end
    end
end

[x y]=find(flag==1);

%figure,imshow(im);
figure,imshow(im);
hold on;
plot(y,x,'r+');

标定板角点检测效果图:

转载于:https://www.cnblogs.com/algorithms/archive/2013/04/01/2993822.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值