zoukankan      html  css  js  c++  java
  • MATLAB Harris角点检测

     1 close all;
     2 clear all;
     3 clc;
     4 
     5 img=imread('rice.png');
     6 imshow(img);
     7 [m n]=size(img);
     8 
     9 tmp=zeros(m+2,n+2);
    10 tmp(2:m+1,2:n+1)=img;
    11 Ix=zeros(m+2,n+2);
    12 Iy=zeros(m+2,n+2);
    13 
    14 E=zeros(m+2,n+2);
    15 
    16 Ix(:,2:n)=tmp(:,3:n+1)-tmp(:,1:n-1);
    17 Iy(2:m,:)=tmp(3:m+1,:)-tmp(1:m-1,:);
    18 
    19 Ix2=Ix(2:m+1,2:n+1).^2;
    20 Iy2=Iy(2:m+1,2:n+1).^2;
    21 Ixy=Ix(2:m+1,2:n+1).*Iy(2:m+1,2:n+1);
    22 
    23 h=fspecial('gaussian',[7 7],2);
    24 Ix2=filter2(h,Ix2);
    25 Iy2=filter2(h,Iy2);
    26 Ixy=filter2(h,Ixy);
    27 
    28 Rmax=0;
    29 R=zeros(m,n);
    30 for i=1:m
    31     for j=1:n
    32         M=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)];
    33         R(i,j)=det(M)-0.06*(trace(M))^2;
    34         
    35         if R(i,j)>Rmax
    36             Rmax=R(i,j);
    37         end
    38     end
    39 end
    40 re=zeros(m+2,n+2);
    41 
    42 tmp(2:m+1,2:n+1)=R;
    43 img_re=zeros(m+2,n+2);
    44 img_re(2:m+1,2:n+1)=img;
    45 for i=2:m+1
    46     for j=2:n+1
    47         
    48         if tmp(i,j)>0.01*Rmax &&...
    49            tmp(i,j)>tmp(i-1,j-1) && tmp(i,j)>tmp(i-1,j) && tmp(i,j)>tmp(i-1,j+1) &&...
    50            tmp(i,j)>tmp(i,j-1) && tmp(i,j)>tmp(i,j+1) &&...
    51            tmp(i,j)>tmp(i+1,j-1) && tmp(i,j)>tmp(i+1,j) && tmp(i,j)>tmp(i+1,j+1)
    52                 img_re(i,j)=255; 
    53         end
    54           
    55     end
    56 end
    57 
    58 figure,imshow(mat2gray(img_re(2:m+1,2:n+1)));

    图片福利:

  • 相关阅读:
    Django框架13 /缓存、信号、django的读写分离
    linux09 /消息队列、saltstack工具
    会话管理之AbpSession
    ABP之事件总线(5)
    依赖注入容器之Castle Windsor
    ABP之事件总线(4)
    ABP之事件总线(3)
    ABP之事件总线(2)
    ABP之事件总线(1)
    ABP之展现层(Datatables分页)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13645904.html
Copyright © 2011-2022 走看看