zoukankan      html  css  js  c++  java
  • 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+');

    标定板角点检测效果图:

  • 相关阅读:
    判断是否是微信浏览器
    弹性盒模型
    一个发光的搜索边框(纯CSS3)
    小练习
    js控制div是否显示
    遮罩弹窗
    布局
    CSS构造表单
    CSS 滤镜(IE浏览器专属其他浏览器不支持)
    Css中光标,DHTML,缩放的使用
  • 原文地址:https://www.cnblogs.com/algorithms/p/2993822.html
Copyright © 2011-2022 走看看