SUSAN角点检测

close all;
clear all;
I=imread(‘corner2.gif‘);
[posX,posY]=susan(I,3);
figure;
imshow(I);hold on;
plot(posX,posY,‘g*‘);

function [posX,posY]=susan(I,radius)
%SUSAN角点检测
%I:输入图像
%radius:圆形模板的半径
%(posX,posY):角点坐标
[r,c]=size(I);
mask=generatemask(radius);
th1=20;%阈值越小,提取的角点越多
th2=sum(mask(:))/2;%阈值越大,提取的角点越多
R=zeros(r,c);%角点响应值
res=zeros(r,c);%是否是角点
for i=radius+1:r-radius
    for j=radius+1:c-radius
        B=I(i-radius:i+radius,j-radius:j+radius);
        usan=(abs(B-I(i,j))<th1).*mask;%USAN区域
        N=sum(usan(:));
        if(N<th2)
            R(i,j)=th2-N;
        end
    end
end

%非极大值抑制
tr=radius+2;
for i=tr+1:r-tr
    for j=tr+1:c-tr
        tmp=R(i-tr:i+tr,j-tr:j+tr);
        tmp(tr+1,tr+1)=0;
        if(R(i,j)>max(tmp(:)))
            res(i,j)=1;
        end
    end
end
[posY,posX]=find(res);

function mask=generatemask(radius)
%生成半径为radius的掩模
mask=zeros(2*radius+1,2*radius+1);
[row,col]=size(mask);
cenr=(row+1)/2;
cenc=(col+1)/2;
for i=1:row
    for j=1:col
        if((i-cenr)^2+(j-cenc)^2<=radius^2)
            mask(i,j)=1;
        end
    end
end

结果:

时间: 2024-10-15 05:11:17

SUSAN角点检测的相关文章

15、角点检测之Harris角点检测

一.引言:关于兴趣点(interest points) 在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪.三维重建等一系列的问题.我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析.如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值. 图像特征类型可以被分为如下三种: <

【opencv入门】角点检测之Harris角点检测

一.引言:关于兴趣点(interest points) 在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪.三维重建等一系列的问题.我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析.如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值. 图像特征类型可以被分为如下三种: <

33、【opencv入门】角点检测之Harris角点检测

一.引言:关于兴趣点(interest points) 在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪.三维重建等一系列的问题.我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析.如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值. 图像特征类型可以被分为如下三种: <

OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测

在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪.三维重建等一系列的问题.我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行局部有的放矢的分析.如果能检测到足够多的这种点,同时他们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就有使用价值. 图像特征类型可以被分为如下三种: <1>边缘 <2>角点 (感兴趣关键点) &

Harris角点及Shi-Tomasi角点检测(转)

一.角点定义 有定义角点的几段话: 1.角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域中.也称为特征点检测. 角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界.而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅仅是"角点".这些特征点在图像中有具体的坐标,并具有某些数学特征,如局部最大或最小灰度.某些梯度特征等.

OpenCV3入门(十二)角点检测

1.角点介绍 角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域中,也称为特征点检测.在图像中角点是一个重要的局部特征,它决定了图像中关键区域的形状,体现了图像中重要的特征信息.目前,角点检测方法主要有2大类: 1)基于图像边缘轮廓特征的方法. 2)基于图像灰度信息的方法.此方法主要通过计算曲率及梯度进行角点检测,通过计算边缘的曲率来判断角点的存在性.典型代表有Harris算法.Susan算法

Harris角点检测原理及实现

一.原理 二.实现 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=[-1,0,1;-1,0,1;-

【OpenCV十六新手教程】OpenCV角检测Harris角点检测

本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/29356187 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 知乎:http://www.zhihu.com/people/mao-xing-yun 邮箱: [email protected] 写作当前博文时配套使用的OpenCV版本号: 2.4.9 本篇文章中,我们一起探讨了OpenCV

opencv对图像进行边缘及角点检测

opencv对图像进行边缘及角点检测 先看结果: 代码: // ConsoleApplication1_812.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "opencv2/opencv.hpp" class Imagedetector{ public: Imagedetector():threshold(-1) ,cross(5